Ich arbeite seit 2 Jahren mit TDD, und wo ich zu der Zeit arbeitete, waren wir alle zurückhaltend, einschließlich der Manager. Es stellte sich jedoch bald als das Richtige heraus. Die Vorteile, die wir bald bemerkten, waren
- Frühzeitig Fehler entdecken.
- Besserer Code schreiben, ohne es zu merken.
- Ihr Code kann jetzt besser gewartet werden, da Ihre Tests nur in kleinen Blöcken ausgeführt werden (wir hatten Funktionen, die 300-400 Zeilen lang waren). Jetzt maximal 30 und alle unabhängig getestet.
Die Manager würden nicht wissen, wie sie alle an einer Sache interessiert sind "Haben Sie fertig". Aber dann beschweren sie sich, wenn die Software immer wieder kaputt geht, ohne es zu merken. Mit einer guten Abdeckung und vernünftigen Tests. Es ist nicht die Menge, sondern die Qualität, die Sie wirklich sehen können, wenn jemand eine Funktionalität bricht. Leider ist es auch schwierig, wenn Sie alleine sind. Ich hatte das gleiche Problem, da Sie möglicherweise Code ändern müssen, z. B. Basisklassen usw., damit Sie Teile der Software testbar machen können.
Ich möchte Ihnen ein Beispiel geben. Ich wollte das Repository verspotten, aber es gab keine Schnittstelle, und ich musste das Repository in meine Service-Schicht einfügen und daher einen Konstruktor im gesamten Shop hinzufügen / ändern Am Ende habe ich mehr als 200 Tests nur einen Bereich des Systems getestet und sie waren beeindruckt.
Ich mache normalerweise folgendes:
- Ich halte meine unittests sehr kurz
- Nur 1 behaupten. Kein russisches Roulette.
- Ich teste ein Positiv-Negativ- und Ausnahmeszenario
In Bezug auf Fallstudien fürchte ich, ich bin nicht sicher, ob ich welche gesehen habe. Sie müssen Ihr Projekt aufbauen und zu Ihren Fallstudien werden. Sie könnten auch beeindruckt sein.
Ich hoffe, es hilft