Frage

Unter Unit-Tests versteht man grob gesagt das isolierte Testen von Teilen Ihres Codes mit Testcode.Die unmittelbaren Vorteile, die mir in den Sinn kommen, sind:

  • Die Durchführung der Tests wird automatisierbar und wiederholbar
  • Sie können auf einer viel detaillierteren Ebene testen als beim Point-and-Click-Testen über eine GUI

Rytmis

Meine Frage ist: Was sind die aktuellen „Best Practices“ in Bezug auf Tools und wann und wo sollten Sie Unit-Tests als Teil Ihrer täglichen Codierung einsetzen?

Versuchen wir, einigermaßen sprachunabhängig zu sein und alle Grundlagen abzudecken.

War es hilfreich?

Lösung

Ok, hier sind einige Best Practices von jemandem, der nicht so viel Unit-Tests durchführt, wie er sollte ... hust.

  1. Stellen Sie sicher, dass Ihre Tests testen einsDing und nur eine Sache.
  2. Schreiben Sie nebenbei Unit-Tests.Vorzugsweise Vor Sie schreiben den Code, den Sie testen.
  3. Führen Sie keinen Unit-Test der GUI durch.
  4. Trennen Sie Ihre Bedenken.
  5. Minimieren Sie die Abhängigkeiten Ihrer Tests.
  6. Scheinverhalten mit verspottet.

Andere Tipps

Vielleicht möchten Sie einen Blick darauf werfen TDD auf drei Karteikarten Und Drei Karteikarten, mit denen Sie sich leicht an die Essenz der testgetriebenen Entwicklung erinnern können:

Karte Nr. 1.Onkel Bobs drei Gesetze

  • Schreiben Sie keinen Produktionscode, außer um einen fehlgeschlagenen Test zu bestehen.
  • Schreiben Sie nur so viel Test, dass ein Fehler nachgewiesen werden kann.
  • Schreiben Sie nur so viel Produktionscode, dass der Test besteht.

Karte Nr. 2:ERSTE Prinzipien

  • Schnell:Unfassbar schnell, etwa in Hunderten oder Tausenden pro Sekunde.
  • Isoliert:Der Test lokalisiert einen Fehler eindeutig.
  • Wiederholbar:Ich kann es wiederholt ausführen und es wird jedes Mal auf die gleiche Weise bestanden oder fehlgeschlagen.
  • Selbstverifizierung:Der Test ist eindeutig bestanden/nicht bestanden.
  • Rechtzeitig:Im Gleichschritt mit winzigen Codeänderungen erstellt.

Karte Nr. 3:Kern von TDD

  • Rot:Test schlägt fehl
  • Grün:Test besteht
  • Refaktor:Sauberer Code und Tests

Die sogenannte xUnit Das Framework ist weit verbreitet.Es wurde ursprünglich für Smalltalk als SUnit entwickelt, entwickelte sich zu JUnit für Java und verfügt mittlerweile über viele andere Implementierungen wie NUnit für .Net.Es ist fast ein De-facto-Standard – wenn Sie sagen, dass Sie Unit-Tests verwenden, gehen die meisten anderen Entwickler davon aus, dass Sie xUnit oder ähnliches meinen.

Eine großartige Ressource für „Best Practices“ ist die Google-Testblog, zum Beispiel ein aktueller Beitrag über Testbaren Code schreiben ist eine fantastische Ressource.Insbesondere die wöchentlichen Beiträge der Serie „Testen auf der Toilette“ eignen sich hervorragend zum Posten in Ihrem Cube oder Ihrer Toilette, sodass Sie immer über das Testen nachdenken können.

Die xUnit-Familie ist die Hauptstütze des Unit-Tests.Sie sind in Netbeans, Eclipse und viele andere IDEs integriert.Sie bieten eine einfache, strukturierte Lösung für Unit-Tests.

Wenn ich einen Test schreibe, versuche ich immer, die Verwendung von externem Code zu minimieren.Damit meine ich:Ich versuche, den Setup- und Teardown-Code für den Test so gering wie möglich zu halten und die Verwendung anderer Module/Codeblöcke so weit wie möglich zu vermeiden.Gut geschriebener modularer Code sollte beim Auf- und Abbau nicht zu viel externen Code erfordern.

NUnit ist ein gutes Tool für alle .NET-Sprachen.

Unit-Tests können auf verschiedene Arten verwendet werden:

  1. Testlogik
  2. Erhöhen Sie die Trennung von Codeeinheiten.Wenn Sie eine Funktion oder einen Codeabschnitt nicht vollständig testen können, sind die Teile, aus denen sie besteht, zu stark voneinander abhängig.
  3. Treiben Sie die Entwicklung voran, manche Leute schreiben Tests Vor Sie schreiben den zu testenden Code.Dies zwingt Sie dazu, darüber nachzudenken, was der Code bewirken soll Tun, und gibt Ihnen dann eine konkrete Richtlinie, wann Sie das erreicht haben.

Vergessen Sie nicht die Refactoring-Unterstützung.ReSharper auf .NET bietet automatisches Refactoring und schnelle Korrekturen für fehlenden Code.Das heißt, wenn Sie einen Aufruf an etwas schreiben, das nicht existiert, fragt ReSharper, ob Sie das fehlende Teil erstellen möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top