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