it-swarm-eu.dev

Was sind die besten Ressourcen zum Erlernen von TDD?

Ich möchte TDD lernen (und beherrschen). Was sind die besten:

  • bücher
  • websites
  • videos
  • liste der Übungen
  • persönliche Worte der Weisheit

zum Lernen, Schätzen und Verwenden von TDD?

27
Eric

Persönlich fand ich, dass das Lesen eines oder zweier JUnit-Aufsätze, in denen betont wurde, dass "Sie den Test vor dem Code schreiben", ausreichte, um mich zum Laufen zu bringen.

Der wichtigste Teil beim Erlernen dieser Technologie ist das Schreiben einer Menge testbasierten Codes, da Sie einige der grundlegendsten Methoden zum Schreiben von Code ändern müssen. Dinge wie:

  • Wenn Sie den Test vor dem Code schreiben, überlegen Sie sich im Voraus, wie Sie Ihren Code aufrufen und das Ergebnis zurückerhalten. Dies bedeutet, dass Sie die API zuerst basierend auf Ihrer Verwendung entwerfen. Dies führt häufig zu einer besseren API.
  • Ihr Codierungsstil wird sich ändern, da Sie modularer denken MÜSSEN, um Teile des Codes statt nur des Ganzen testen zu können.
  • Sie werden auch an einen Punkt gelangen, an dem Sie sicher einen Hauptblock herausziehen und einen neuen Block einfügen können, anstatt sich gleich zu verhalten, weil Ihr Test bestanden wurde. Ich habe das kürzlich mit einer Datumsanalysebibliothek gemacht, da das Original zu nachsichtig war.

Der beste Ort, um klein anzufangen, sind Ihre Dienstprogramme. Wenn Sie das nächste Mal einen benötigen, entwerfen Sie einfach, dass mit Tests zuerst viele Tests geschrieben werden, die alle Ihre offiziellen Anwendungsfälle abdecken (einschließlich dessen, was mit übergebenen Nullwerten usw. geschehen soll), und wenn alle Anwendungsfälle implementiert sind, sollten Sie in der Lage sein, diese zu verwenden Es befindet sich direkt in Ihrem Code und Sie können sicher sein, dass es wie erwartet funktioniert.

Ich habe auch die Erfahrung gemacht, dass gute Tests zusätzliche Arbeit als Dokumentation leisten können, da Sie eine Menge sehr präzisen Codes haben, der genau sagt, wie sich der Code in verschiedenen Situationen verhält, was leicht als richtig erwiesen werden kann (grüner Balken). Mit sorgfältigen Kommentaren bekommt man es nicht viel besser.

Für Java jUnit Version 4 ist wirklich schön.

18
user1249

Abgesehen von einigen der bereits erwähnten Bücher kann ich Growing Object-Oriented Software Guided by Tests empfehlen. Ich habe es noch nicht fertig gelesen, aber es ist eine wertvolle Lektüre, einschließlich der Geschichte eines ganzen, lebensechten TDD-Projekts, nicht nur vereinfachter Codebeispiele.

8
Péter Török

Meiner Meinung nach geht es bei TDD mehr darum, den Code testbar zu machen, als Tests zu schreiben.

Sicher, Sie können einen Test vor dem Codieren schreiben, aber der ganze Grund, warum der Test geschrieben wird, ist, dass Sie codieren können - was Sie nicht davon abhält, Code zu schreiben, der schwer zu testen ist.

Schauen Sie sich das an, um ein besseres Gefühl dafür zu bekommen, was ich meine: Meine einheitliche Theorie der Fehler

Wenn Sie an dem Konzept interessiert sind und mehr erfahren möchten, kommentieren Sie einfach - und ich werde Sie in Richtung einer aufgezeichneten Präsentation zum Thema von Google weisen.

UPDATE:

Wie schreibe ich sauberen, testbaren Code

Miško Hevery Präsentieren (Von GoogleTechTalks ) Bei Google in NYC und gesponsert von Googles Engineering Productivity Gruppe

8
blunders

Ich habe zwei Bücher gelesen:

Test Driven Development: By Example von Kent Beck und

nit Test Frameworks von Paul Hamil

Das Beck-Buch ist sehr beliebt, aber ich habe erst mit Unit-Tests begonnen, als ich "Unit Test Frameworks" gelesen habe. Ich mache etwas TDD, aber ich füge auch Tests zu älterem Code hinzu, den ich pflegen muss (wenn ich kann).

Bearbeiten: Sobald Sie es in den Griff bekommen, empfehle ich, es sofort in einem aktuellen Projekt zu verwenden. Für mich war das der Zeitpunkt, an dem das eigentliche Lernen stattfand, und ich denke, das Buch "Unit Test Framework" war ein besseres Nachschlagewerk für diesen Zweck. (Ich habe Nunit mit C # verwendet).

4
vjones

Während nicht in erster Linie über TDD (obwohl es es berührt, sowie Design für Testbarkeit), Die Kunst des Unit-Testing = ist ein Buch, das ich empfehlen würde, weil es Ihnen beibringt, wie man gute Tests schreibt.

Insbesondere wird erläutert, wie vertrauenswürdige, wartbare und lesbare Tests erstellt werden. Ich denke, dies ist der wichtigste Abschnitt des Buches, abgesehen von den Grundlagen zu Unit-Tests und Isolations-Frameworks. Es ist offensichtlich, dass der Erfolg oder Nutzen von Unit-Tests begrenzt ist, wenn Unit-Tests zu einem Problem werden oder die Arbeit eines Entwicklers reibungsloser gestalten. Wenn man Zeit und Mühe investiert, um die Tests zu erstellen, sollte man in der Lage sein, die größte Rendite aus dieser Investition zu ziehen.

4
Matt