Cześć.
Mam taka zagwozdkę.
Kiedy piszę testy jednostkowe (praktykuję TDD)
To staram się zawsze używać instancji klasy, której testuję, przy pomocy operatora new.
Dzięki temu wiem np. że jeśli konstruktor ma dużo parametrów, to coś jest nie tak (pewnie klasa łamie zasadę SRP).
Tymczasem mój kolega dzisiaj pokazał mi test, w którym testował klasę, która ma 20 zależności, przekazywanych przez konstruktor. Użył adnotacji InjectMocks, bez wywoływania konstruktora.
Ja InjectMocks używam, jeśli mam mocki zależności w teście, a klasa testowana ma np. pola @Autowired
W innych sytuacja nie używam tylko przekazuje je w konstruktorze klasy testowanej.
Sposób z InjectMocks nie do końca do mnie przemawia, ale może to przyzwyczajenie...
Pytanie, jak wy testujecie jednostkowo?