10 Stimmen

Wie kann ich mit TDD "testinfiziert" werden?

Ich lese immer wieder von Leuten, die "testinfiziert" sind, d. h., die TDD nicht nur "verstehen", sondern auch nicht mehr ohne sie leben können. Sie haben sozusagen "das Makeover" gehabt. Die Frage ist, wie kann ich so werden?

16voto

MattGrommes Punkte 11484

Ein Teil des Punktes "testinfiziert" zu sein ist, dass man TDD genug benutzt und die Erfolge genug gesehen hat, dass Sie wollen nicht ohne sie kodieren . Wenn man erst einmal einen Zyklus durchlaufen hat, in dem man zuerst Tests schreibt, dann kodiert und refaktorisiert und sieht, wie die Anzahl der Fehler sinkt und der Code dadurch besser wird, wird es nicht nur zur zweiten Natur, wie Zxaos sagte, sondern es fällt einem auch schwer, zu Code First zurückzukehren. Das ist testinfiziert.

16voto

Jason Cohen Punkte 78227

Sie haben bereits über TDD gelesen; noch mehr zu lesen, wird Sie nicht begeistern.

Stattdessen brauchen Sie eine echte persönliche Erfolgsgeschichte.

So geht's. Nehmen Sie etwas Code aus einem Kernmodul, Code, der nicht von externen Systemen oder zu vielen anderen Unterprogrammen abhängt. Dabei spielt es keine Rolle, wie komplex oder einfach die Routine ist.

Beginnen Sie dann mit dem Schreiben von Unit-Tests für diese. (Ich gehe davon aus, dass Sie ein xUnit oder ähnliches für Ihre Sprache haben.) Seien Sie wirklich unausstehlich mit den Tests - testen Sie jeden Grenzfall, testen Sie max-int und min-int, testen Sie null's, testen Sie Strings und Listen mit Millionen von Elementen, testen Sie Strings mit koreanischen und Steuerzeichen und rechts-nach-links Arabisch und Anführungszeichen und Backslashes und Punkte und andere Dinge, die dazu neigen, Dinge zu brechen, wenn nicht escaped.

Was Sie finden werden, ist.... Wanzen! Zuerst denken Sie vielleicht, dass diese Fehler nicht wichtig sind - Sie sind noch nicht auf diese Probleme gestoßen, Ihr Code würde dies wahrscheinlich nie tun, etc. etc. Aber meine Erfahrung ist, wenn Sie weiter vorankommen, werden Sie über die Anzahl der kleinen Probleme erstaunt sein. Irgendwann wird es schwer zu glauben, dass keine dieser Fehler werden immer ein Problem verursachen.

Außerdem hat man ein großartiges Gefühl der Erfüllung, wenn etwas wirklich gut gemacht ist. Wir wissen, dass Code nie perfekt und selten frei von Fehlern ist. Deshalb ist es schön, wenn wir so viele Tests durchgeführt haben, dass wir uns wirklich sicher fühlen. Zuversicht ist ein schönes Gefühl.

Ich denke, dass das letzte Ereignis, das die Liebe auslösen wird, erst Wochen oder Monate später eintreten wird. Vielleicht sind Sie dabei, einen Fehler zu beheben, eine neue Funktion hinzuzufügen oder den Code zu überarbeiten, und etwas, das Sie tun, bricht einen Unit-Test. "Hä?", werden Sie sagen, ohne zu verstehen, warum die neue Änderung überhaupt für den kaputten Test relevant war. Dann finden Sie es, und finden Erleuchtung. Denn Sie wusste wirklich nicht dass Sie den Code brechen und die Tests Sie retten.

Halleluja!

3voto

Zxaos Punkte 7341

Informieren Sie sich zunächst über TDD, und beginnen Sie dann, es in Ihren Arbeitsablauf zu integrieren. Wenn Sie die Methoden oft genug anwenden, werden Sie feststellen, dass sie Ihnen zur zweiten Natur werden und Sie beginnen, alle Ihre Entwicklungsaufgaben in diesem Rahmen zu gestalten.

Beginnen Sie außerdem mit der Verwendung des J-Unit (oder X-Unit) Frameworks für die Sprache Ihrer Wahl.

1voto

Dale Ragan Punkte 18091

Ein Wort: Übung! Es gibt einen gewissen Overhead bei der Durchführung von TDD, und der Weg, um ihn zu überwinden, ist zu üben und sicherzustellen, dass Sie Werkzeuge verwenden, um den Prozess zu unterstützen. Sie müssen die Werkzeuge wie die Rückseite Ihrer Hand lernen. Sobald Sie die Werkzeuge lernen, um mit dem Prozess, den Sie lernen, zusammen zu gehen, dann wird es klick machen und Sie werden fließend mit dem Schreiben von Tests zuerst, um den Code heraus zu spülen bekommen. Dann werden Sie "testinfiziert" sein.

I antwortete Ich hatte vor einiger Zeit eine ähnliche Frage wie diese. Vielleicht möchten Sie es auch nachlesen. Ich erwähne einige Tools und erkläre das Erlernen von TDD. Von diesen Werkzeugen sind Resharper und die Auswahl eines guten Mocking-Frameworks entscheidend für die Durchführung von TDD. Ich kann nicht betonen, diese Werkzeuge zu lernen, um zusammen mit der Prüfung Rahmen Sie verwenden genug gehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X