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

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ć?

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.

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)

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.

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ć?
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 :)

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