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ć?
Jak testować klasy które korzystają z innych źródeł?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: UK
- Postów: 2235
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.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Hong Kong
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)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 4700
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.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
- Jeśli to twój kod to go popraw i daj możliwość konfigurowania parametrami.
- Jeśli to nie twój kod, to po co go testować?