Ich möchte TDD verwenden. Irgendwelche Tipps für einen Anfänger? [geschlossen]

27

Ich habe in keinem meiner Projekte einen automatisierten Testmechanismus verwendet und ich habe das Gefühl, dass ich viel vermisse. Ich möchte mich verbessern, also muss ich anfangen, einige Probleme anzugehen, die ich so vernachlässigt habe und Git zu versuchen, anstatt bei SVN zu bleiben.

Was ist ein guter Weg, um TDD zu lernen? Ich werde wahrscheinlich Eclipse verwenden, um in Java zu programmieren. Ich habe von JUnit gehört, aber ich weiß nicht, ob ich noch etwas anderes in Betracht ziehen sollte.

Mike42
quelle

Antworten:

15

Sie könnten damit beginnen, Katas zu codieren . Wählen Sie einen Algorithmus (z. B. Umwandlung von Dezimalzahlen in römische Zahlen, Bewertung eines Bowlingspiels, Conways Lebensspiel usw.) und versuchen Sie, die Lösung mit TDD zu erarbeiten.

Ihre Lösungsstruktur wird wahrscheinlich sehr einfach sein (viel einfacher als Ihr realer Produktionscode): eine Klasse für die Testvorrichtung und eine Klasse, die den zu testenden Algorithmus enthält. Und die getestete Klasse ohne Abhängigkeiten ist ein weiteres Plus. Sie können die Einfachheit dieses Setups nutzen, um schnell den Dreh der Rot-Grün-Refaktor-Schleife zu finden.

Welches Tool Sie für Ihre TDD-Katas verwenden, spielt keine Rolle, solange Sie sich an die Prinzipien halten. Das JUnit-Plug-in für Eclipse ist jedoch sehr einfach zu verwenden und daher eine ausgezeichnete Wahl.

Azheglov
quelle
8

Machen Sie sich mit AAA vertraut , lesen Sie mehr über die Probleme, die mit der testgetriebenen Entwicklung einhergehen ( Design für Testbarkeit im Vergleich zu kostenintensiven Tools, damit das Design keine Rolle spielt). Lernen Sie die Abhängigkeitsinjektion, damit das Entfernen externer Abhängigkeiten zum Testen einfacher wird.

Hier ist ein guter Überblick über Notizen, die ich beim Lesen von The Art of Unit Testing gemacht habe

http://imaginarydevelopment.blogspot.com/2010/01/unit-testing-reference.html

Maslow
quelle
1
+1 für die Empfehlung von The Art of Unit Testing. Meiner Meinung nach eines der besten Bücher, um Unit-Tests zu erklären, ohne die Leser abzuschrecken.
Anne Schuessler
6

Es gibt wirklich keinen Ersatz dafür, einfach ein Testgeschirr (wie NUnit) zu nehmen, etwas Literatur zu lesen und sich dann die Hände schmutzig zu machen.

Wie James T. Kirk einmal sagte: "Wir lernen durch Handeln."

Chris Holmes
quelle
4

Ich kann dieses Buch nur empfehlen: Wachsende objektorientierte Software, die von Tests geleitet wird

Es gibt ein funktionierendes Beispiel, das das Buch durchläuft und eine sehr kohärente Ansicht darüber bietet, wann ein Test erstellt werden sollte, was er enthalten sollte und wie er konstruiert und überarbeitet werden sollte.

flamingpenguin
quelle
-3

Überprüfen Sie diesen Link . Es ist Bob Martins Blog über TDD - ein ausgezeichnetes Material, mit dem Sie TDD verstehen (oder Ihnen einen anderen potenziellen Kunden vorstellen) können.

Ratkok
quelle
2
In Onkel Bobs eigenen Worten lautet der Slogan des Blogs "Schriften zu sauberem Code, Design und allem, was mit Software zu tun hat". Der Blog-Inhalt ist viel umfassender als OPs "Tipps für Anfänger [in TDD]".
Azheglov