6 Stimmen

Wie fange ich mit der Unit-Tests an?

Ich weiß, dass Unit-Tests wünschenswert sind, und ich bin daran interessiert, Unit-Tests durchzuführen. Das einzige Problem ist, dass ich keine Ahnung habe, wie oder wo ich anfangen soll. Also meine Frage ist: Wie lerne ich über Unit-Tests und wie fange ich an? Speziell schreibe ich häufig Java-Code in NetBeans und C#-Code in Visual Studio und bin daran interessiert, welche Tools ich verwenden soll und wie ich anfangen soll. Kann mir jemand Ratschläge für einen absoluten Unit-Test-Anfänger geben?

Ich weiß, dass es viele ähnliche Fragen gibt, aber ich bin weniger daran interessiert, warum als vielmehr daran, wie.

8voto

guerda Punkte 22205

Versuchen Sie, auf StackOverflow zu lesen, tag unit-testing :)

Ein weiterer Einstiegspunkt wäre die Tags junit und nunit

Es gibt viele Fragen zu diesem Thema.

Wenn Sie nach Büchern über Unittesting suchen, probieren Sie diesen Thread aus: Gutes C# Unittesting-Buch. Dort wird das berühmte Buch von Kent Beck erwähnt, Test Driven Development By Example. Es lohnt sich zu lesen!

Viel Glück!

5voto

Jeff Sternal Punkte 46528

Wenn Sie wirklich Unit Testing verstehen möchten (und süchtig werden möchten), probieren Sie es aus, es sollte nur ein paar Stunden dauern!

Zuerst empfehle ich das Herunterladen eines Unit Testing Frameworks wie NUnit (wenn Sie mit .NET / C# beginnen möchten).

Die meisten dieser Frameworks haben Online-Dokumentationen, die eine kurze Einführung bieten, wie zum Beispiel das NUnit Quick Start. Lesen Sie diese Dokumentation und wählen Sie dann eine ziemlich einfache, eigenständige Klasse aus, für die Sie verantwortlich sind. Versuchen Sie idealerweise eine Klasse zu wählen, die folgende Eigenschaften aufweist:

  • Hat wenige oder keine Abhängigkeiten von anderen Klassen - zumindest nicht von komplexen Klassen.
  • Zeigt ein Verhalten aufweist: Ein einfacher Container mit einer Menge von Eigenschaften wird Ihnen nicht viel über Unit Testing zeigen.

Versuchen Sie, Tests zu schreiben, um eine gute Abdeckung dieser Klasse zu erhalten, kompilieren Sie dann und führen Sie die Tests aus.

Unit Testing ist einfach zu lernen und schwer zu meistern (Entschuldigung für das Klischee, aber es passt hier), daher sollten Sie nach dem Durchführen dieser Schritte mit dem Lesen beginnen: Zum Beispiel hat guerda in einer anderen Antwort auf diese Frage einige ausgezeichnete Links bereitgestellt.

5voto

Michael Borgwardt Punkte 334642

Dieses Tutorial zum Schreiben von JUnit-Tests in NetBeans sollte Ihnen eine Vorstellung davon geben, wie Unit-Tests technisch durchgeführt werden. NUnit für C# funktioniert weitgehend gleich.

Für einen fortgeschrittenen Einblick, wie man Unit-Tests in Ihre tägliche Entwicklung integriert, ist die Standardreferenz Kent Becks "Test Driven Development By Example". Hier ist eine umfassende Übersicht.

3voto

Bruce McGee Punkte 14836

Beginne klein.

Unit Testing (und automatisiertes Testen im Allgemeinen) ist kein Allheilmittel, trifft nicht immer auf jede Situation zu und kann ein wenig gewöhnungsbedürftig sein. Trotzdem, wenn du Software schreibst, die du verkaufst oder auf die dein Unternehmen angewiesen ist, empfehle ich dringend, es zu übernehmen. Du wirst überrascht sein, wie viele professionelle Entwicklungsfirmen das nicht tun.

Zunächst einmal solltest du dich mit den Mechaniken vertraut machen, wie man mit deinen Entwicklungstools Unit Tests erstellt und ausführt.

Dann fange mit einer neuen (vorzugsweise kleinen, aber nicht unbedingt trivialen) Klasse oder Methode an, die du testen möchtest. Tests für bereits bestehenden Code zu schreiben, hat seine eigenen Herausforderungen, deshalb solltest du entweder mit etwas ganz Neuem beginnen oder mit etwas, das du umschreiben wirst.

Du wirst feststellen, dass es einen Einfluss darauf hat, wie du den Code schreibst, wenn du diese Klasse oder Methode testbar (und daher wiederverwendbar) machst. Du solltest auch feststellen, dass das Nachdenken darüber, wie der Code getestet werden soll, dich dazu zwingt, das Design jetzt zu überdenken und zu verfeinern, anstatt es "irgendwann später, wenn es mehr Zeit gibt" zu tun. Selbst Dinge wie "Was sollte zurückgegeben werden, wenn ein ungültiger Parameter übergeben wird?". Du solltest auch ein gewisses Maß an Vertrauen haben, dass der Code genau so funktioniert, wie du es erwartest.

Wenn du von dieser Übung einen Nutzen siehst, entwickle sie weiter und fange an, sie auf andere Teile deines Codes anzuwenden. Im Laufe der Zeit wirst du immer mehr Vertrauen in deine Software haben, da sie immer nachweislich korrekter wird.

Die praktische Herangehensweise half mir, das Thema besser zu verstehen als viele der Lektüren und half mir, die Lücken von Dingen zu füllen, die ich einfach nicht verstand. Besonders im Zusammenhang mit TDD. Es war gegen meine Intuition, bis ich es tatsächlich ausprobiert habe.

2voto

Brad Cupit Punkte 6350

Finde einen Fehler - Schreibe einen Test

Das nächste Mal, wenn du einen Fehler in deinem Code findest, bevor du ihn behebst, schreibe einen Test. Der Test sollte fehlschlagen. Dann behebe den Fehler. Der Test sollte bestehen.

Wenn der Test nicht besteht, gibt es entweder einen Fehler in deinem Test oder einen Fehler in deiner Korrektur.

Eine Person wird diesen Fehler in deinem Code nie wieder finden. Die Unit-Tests werden ihn finden (und schneller als eine Person kann).

Das ist definitiv ein kleiner Anfang, aber es bringt dich ins Testen. Sobald du den Dreh raushast, wirst du wahrscheinlich mehr Tests schreiben und schließlich ein Gespür dafür entwickeln, wie der Code fehlschlägt und welche Tests du brauchst (zum Beispiel: ein Test für jede Geschäftsregel).

Später in deinem Fortschritt richtest du einen Continuous Integration Server ein, der sicherstellt, dass dein Code immer solide ist.

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