Wenn Tests nur Implementierungsdetails abbilden
Ein Test, der bei jeder Implementierungsänderung rot wird, ohne dass sich das beobachtbare Verhalten geändert hat, ist kein Test – er ist ein Hindernis. Overspecified Mocks, das Testen eigener Klassen über Mocks, Spy-Missbrauch und Expectation-Overload sind die häufigsten Ursachen für brittle PHPUnit-Suites, die mehr Wartungsaufwand erzeugen als Sicherheit liefern.
Inhaltsverzeichnis
- 1. Das Grundproblem: Tests, die die Implementierung beschreiben
- 2. Overspecified Mocks: zu viele Expectations
- 3. Mock-What-You-Own: nie fremde Klassen mocken
- 4. Spy-Missbrauch: expects() statt Ergebnis-Assertions
- 5. Konkrete Klassen mocken: das Seam-Problem
- 6. Wann Mocks wirklich sinnvoll sind
- 7. Anti-Pattern vs. empfohlenes Muster im Vergleich
- 8. Zusammenfassung