Hallo,
ich bräuchte mal euren Rat in Bezug auf das Schreiben von möglichst eleganten Tests, die mit Mock-Objekten arbeiten.
Bisher gehe ich so vor:
Mir ist das ständige Refactoring des Mock-Codes aber zu aufwendig, lässt sich das irgendwie vermeiden?
Durch DI kann ich zwar erreichen, dass es dem Test egal ist ob er Mocks oder eine Implementierung bekommt, sobald innerhalb des Tests aber mit den Abhängigkeiten kommuniziert werden muss muss ich ja irgendwo das Verhalten der Mocks definieren. Wenn ich das aus dem Test auslagere (und es z.B. zu den Abhängigkeiten setze) hab ich das Problem, dass ich bei etwaigen Änderungen am Test gleich an mehreren Orten den Code editieren muss.
Im Grunde beschränkt sich das Refactoring "nur" auf das Löschen/Auskommentieren des Mock-Verhaltens, bei vielen Tests ist es aber doch nervig.
Wie geht ihr da vor, damit am Schluss möglichst wenig Refactoring benötigt wird?
ich bräuchte mal euren Rat in Bezug auf das Schreiben von möglichst eleganten Tests, die mit Mock-Objekten arbeiten.
Bisher gehe ich so vor:
- Tests (mit Mocks) auf Basis von Schnittstellen schreiben
- Testen
- Implementierungen der Schnittstellen schreiben
- Mock-Code in den Tests löschen/auskommentieren
- Nochmal testen
Mir ist das ständige Refactoring des Mock-Codes aber zu aufwendig, lässt sich das irgendwie vermeiden?
Durch DI kann ich zwar erreichen, dass es dem Test egal ist ob er Mocks oder eine Implementierung bekommt, sobald innerhalb des Tests aber mit den Abhängigkeiten kommuniziert werden muss muss ich ja irgendwo das Verhalten der Mocks definieren. Wenn ich das aus dem Test auslagere (und es z.B. zu den Abhängigkeiten setze) hab ich das Problem, dass ich bei etwaigen Änderungen am Test gleich an mehreren Orten den Code editieren muss.
Im Grunde beschränkt sich das Refactoring "nur" auf das Löschen/Auskommentieren des Mock-Verhaltens, bei vielen Tests ist es aber doch nervig.
Wie geht ihr da vor, damit am Schluss möglichst wenig Refactoring benötigt wird?