Frage

Ich höre weiter, dass die Leute sagen, wie Tests einfach sein sollten, um einfach, warten, unkompliziert, aber was passiert mit Code-Wiederverwendbarkeit in der Einheitstests?

Nehmen wir zum Beispiel:

generasacodicetagpre.

wäre nicht das Beste, den wiederholten Code von den beiden Tests in einer Funktion einzukapseln, die die erforderlichen Behauptungen anhält?

Ich habe mit einigen Programmierern darüber argumentiert, und sie sind nicht einverstanden, sie sagten, dass Tests dumm sein sollten, dieser Code-Wiederverwendbarkeit ist hier nicht gut. Der Grund dafür ist, dass in der Django-Konsole nicht sehr klar ist, wo die Behauptung tatsächlich fehlgeschlagen ist, da die Behauptung in der Funktion lag, obwohl ich nicht einverstanden war, weil ich mit der Nase den Namen des Tests und des Tracebacks, obwohl Die Jungs sind nicht einverstanden, wodurch ein Test ohne Nase individuell aufgerufen werden konnte (und daher könnten Sie nicht alle diese Details sehen).

Was denkst du?

    .
  • ist es gut, Code-Wiederverwendbarkeit in Geräte-Tests zu verwenden?
  • Wenn die Wiederverwendbarkeit verwendet werden kann / verwendet werden kann / müssen dann das andere Problem in Bezug auf die Anhängerung der Behauptungen überwinden?
War es hilfreich?

Lösung

Die wichtigsten Faktoren für Codequalität, wie Klarheit und Lesbarkeit, sind auch für den Testcode wichtig.Wenn die Codewiederholung das Lesen einfacher macht, sollten Sie dies tun, unabhängig davon, ob der Testcode, den Sie schreiben, und umgekehrt.

Zum Beispiel habe ich in einem Paket geschrieben, ich hatte eine Funktion:

generasacodicetagpre.

das erlaubt, alle Testvektoren wie:

zu schreiben generasacodicetagpre.

das, imo, verbessert die Klarheit, da die einzelnen Tests nur die auf diesen Testspezifischen Informationen enthalten.

punktierende Behauptungen sollten immer einfach sein.Sogar generakodicetagcode gibt Ihnen ein Traceback, und wenn Ihr Test-Setup nicht darauf hinweist, dass Sie nicht darauf hinweisen, dass es schwierig ist, keine Testfehler zu debuggen und definitiv auf etwas sinnvoll zu wechseln.

Andere Tipps

Wenn Ihre Kollegen gesagt haben, sollten Sie Ihre Tests dumm schreiben.Es gibt mehrere Gründe dafür, der wichtigste ist, dass Sie komplexe Logik in den Tests vermeiden möchten.Wenn Sie Ihre Tests "SMART" schreiben, neigen sie dazu, dasselbe oder ähnliche Logik als Code zu enthalten, den Sie testen möchten.Das heißt, Sie riskieren in beiden Orten denselben Fehler und werden Fehler vermissen, die Sie finden möchten.

Ein weiterer Grund ist, dass Sie möchten, dass Ihr Test als Dokumentation des Codes dienen soll, den Sie testen möchten.Wenn der Test über viele Funktionen und Logik einen komplexen Ausführungsweg hat, ist dies nicht so einfach zu verstehen.In den besten Wildern würden Sie sehen, wie der Produktionscode nur durch einen Blick auf den Test funktionieren soll.

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