Jak testować klasy które korzystają z innych źródeł?

Odpowiedz Nowy wątek
2018-03-16 14:16
Chory Samiec
0

Mam pytanie a bardziej problem. Jak zrobić junit testy które testowały by klasy które mają wewnętrznie zależności do bazy, configów i innych źródeł informacji których nie ma jak z poziomu konstruktora lub metod zamokować?

Pozostało 580 znaków

2018-03-16 14:36
0

Dla czego nie ma jak tego zamockowac? Caly sens mockowania polega na tym zeby wlasnie nie korzystac z zewnetrznych zrodel w testach jednostkowych. Twoj kod powinien byc tak zaprojektowany zeby wspieral wstrzykiwanie zaleznosci, a co za tym idzie umozliwal tez mockowanie.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.

Pozostało 580 znaków

2018-03-16 14:44
1

zrob refaktoring zeby sie dalo zamokowac i/o lub odziedziczyc z testowanej klasy i zrobic override na rzeczy z i/o. ewentualnie mozesz jeszcze uzyc https://github.com/powermock/powermock

a najlepiej to nie testuj klas tylko funkcjonalnosci (tak czy siak bez refaktoringu sie pewnie nie obejdzie, ale tak na przyszlosc - testy jednostkowe per klasa to zwykle strata czasu)

edytowany 2x, ostatnio: katelx, 2018-03-16 14:47

Pozostało 580 znaków

2018-03-16 14:45
0

Testów jednostkowych bez mocków nie zrobisz. Są jeszcze testy integracyjne, które mają to do siebie, że testują wiele komponentów współdziałających razem oraz są zależne od konfiguracji. Poczytaj na ten temat.


Wiedza to potęga

Pozostało 580 znaków

2018-03-16 15:37
1
  1. Jeśli to twój kod to go popraw i daj możliwość konfigurowania parametrami.
  2. Jeśli to nie twój kod, to po co go testować?

Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2018-03-16 19:34
0

Tak właściwie to czemu nie możesz zmockowac z konstruktora? Masz wszystko inicjowane z wewnątrz? Wedlug mnie nienajlepszy pomysł, daj konstruktor z argumentami i skorzystaj z DI :)


Nie pomagam przez PM. Pytania zadaje się na forum.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0