A lie razy będziesz zmieniał ten conectionString w teście? :---| 3 razy na test albo więcej ? :-----|
Testy mają być od siebie całkowicie odizolowane. Zabawę w przestawianie globalnego mutowalnego stanu oglądam w projekcie w firmie - poprzedni zespół wybrał framework webowy, który utrudniał wstrzykiwanie zależności i zamiast trzymać się jak najmniejszej ilości zła koniecznego, czyli globalnego mutowalnego stanu, programiści jeden za drugim potraktowali ten globalny mutowalny stan jako wzorzec projektowy. Efektem takiego podejścia są testy, które padają w losowych momentach i nie wiadomo od czego.
Ale ma charakterystykę podobną do primitive i to nie oznacza, że w każdym języku jest on obiektem.
Bez zbędnych dywagacji: aktualnie w Javie (czyli wersje do Javy 12, bo nie wiadomo co będzie później) bardzo łatwo sprawdzić czy coś jest obiektem - da się zrobić cośCoJestObiektem instanceof Object
a także zrobić generyka na nim List<TuWejdzieTylkoCośCoJestObiektem>
.
No, że przetrzymuje tylko jedną wartość i jest na natywnie wmontowany w język. - ._.
W JavaScripcie w zasadzie wszystko jest wbudowane w język. W Javie prawie wszystko dostępne bezpośrednio przez programistę (bez refleksji) jest zakodowane w Javie w bibliotece standardowej. Python to takie coś pomiędzy - kolekcje ma wbudowane (tzn zaimplementowane w C), ale biblioteka standardowa to duża ilość kodu w Pythonie.