2009-07-24 11 views
6

Jimmy Bogard, schrieb einen Artikel: Getting value out of your unit tests, wo er vier Regeln gibt:Leitlinien für eine bessere Einheit testet

  • Test-Namen sollte das Was und das Warum beschreiben, aus der Sicht des Benutzers
  • Tests sind auch Code, sie geben etwas Liebe
  • nicht auf einer Aufspannung Muster/Organisations Stil
  • One-Setup siedeln sie, Execute und Überprüfen pro Test-

Ihrer Meinung nach diesen Richtlinien sind vollständig? Was sind Ihre Richtlinien für Komponententests? Bitte vermeiden Sie spezifische Sprache Idiome, versuchen Sie, Antworten sprachunabhängig zu halten.

Antwort

6

Es gibt eine ganze, 850 Seiten starke Buch xUnit Test Patterns genannt, die sich mit diesem Thema beschäftigen, so ist es nicht etwas, das leicht gekocht werden kann bis zu ein paar harten Regeln (obwohl die Regeln, die Sie erwähnen, gut sind).

Ein besser verdauliches Buch, das auch dieses Thema behandelt, ist The Art of Unit Testing.

Wenn ich die Regeln hinzufügen, kann ich meisten wichtig finden, sie wäre:

  • Verwenden Testgetriebene Entwicklung. Es ist der mit Abstand effektivste Weg zu guten Komponententests. Der Versuch, Komponententests an vorhandenen Code nachzurüsten, ist im besten Fall schwierig.
  • Halten Sie es einfach: Im Idealfall sollte ein Komponententest weniger als 10 Zeilen Code sein. Wenn der Code auf mehr als 20 Zeilen erweitert wird, sollten Sie ernsthaft in Erwägung ziehen, entweder den Testcode oder die von Ihnen getestete API umzuformen.
  • Halten Sie es schnell. Unit-Testsuites sollen sehr häufig ausgeführt werden, daher sollte die gesamte Suite unter 10 s bleiben. Das kann leicht bedeuten, dass jeder Test unter 10 ms bleibt.
+0

+1 für xUnit Test Patterns: ein großes Buch – dfa

+0

+1 für "Halten Sie es schnell". –

+0

Für die Leute, die nicht ein ganzes Buch darüber lesen wollen, schrieb ich einen Artikel über die Regeln des Unit-Tests hier auf stackoverflow: http://stackoverflow.com/documentation/unit-testing/9947/the-general -Rules-for-Unit-Tests für alle Sprachen – DarkAngel

5

Schreibgerät-Tests ist einfach, es ist das Schreiben von Einheit-testbaren Code, der schwierig ist.

+3

oft Unit-Tests sind auch gebrochen: Test Logik ist falsch und Sie bekommen ein falsches Gefühl von Vertrauen mit Ihrem Code – dfa

1
  • Brechen Sie den Code in Test regelmäßig die Wirksamkeit des Gerätes zu sehen, testet
2

The Way of Testivus

  • Wenn Sie Code schreiben, Tests schreiben.
  • Bleiben Sie nicht auf Einheit Test Dogma stecken.
  • Embrace Einheit Karma testen.
  • Denken Sie an Code und Test als eins.
  • Der Test ist wichtiger als das Gerät.
  • Die beste Zeit zum Testen ist, wenn der Code frisch ist.
  • Tests laufen nicht weg.
  • Ein unvollkommener Test heute ist besser als ein perfekter Test eines Tages.
  • Ein hässlicher Test ist besser als kein Test.
  • Manchmal rechtfertigt der Test die Mittel.
  • Nur Dummköpfe benutzen keine Werkzeuge.
  • Gute Tests schlagen fehl.
+1

-1 für "Ein hässlicher Test ist besser als kein Test." –

+0

Ein hässlicher oder unvollkommener Test kann heute morgen große unangemessene Kopfschmerzen verursachen, wenn er fehlschlägt, und nach 3 Stunden wird festgestellt, dass der Fehler ein Testcode-Problem und kein tatsächlicher wertschöpfender Assertionsfehler war. – Mikeyg36

1

Werfen Sie einen Blick auf die Codeabdeckung Ihrer Tests und versuchen Sie, sie einigermaßen vollständig zu machen (für Fehlerfälle würde ich etwas Diskretion verwenden, um sie zu testen oder nicht).

Verwandte Themen