Gibt es Konventionen für die Funktion von Namen bei Verwendung der Perl-Test::More?

StackOverflow https://stackoverflow.com/questions/45485

  •  09-06-2019
  •  | 
  •  

Frage

Gibt es Konventionen für die Funktion von Namen bei Verwendung der Perl-Test::Mehr oder Test::Simple Module?

Ich bin speziell Fragen über die Namen der Funktionen, die zum einrichten einer Testumgebung testen, bevor Sie den test und den Abriss der Umgebung nach dem erfolgreichen Abschluss der Prüfung(en).

cheers,

Rob

War es hilfreich?

Lösung

Ich glaube nicht, dass es solche Konventionen gibt.

Der einzige Weg, wie Sie dies tun können, ist vielleicht mit BEGIN/END-Blöcke, wenn die Ressourcen verwendet werden, die über die gesamte Datei.

Der Allgemeine Ansatz, den ich nehmen ist damit verbundenen tests in einem code-block, und dann initialisieren Sie die Variablen/resource etc gibt.Sie können vielleicht halten Sie einfach zählen, wie viele tests müssen Sie für jede Funktion.

Etwas wie ...

BEGIN {
   # If you want to set some global db setting/file setting/INC changes etc
}

# Tests functionality 1...
{
     # have fun .... 
}

# Tests functionality 2...
{
     # have more fun .... 
}

END {
   # Clean up the BEGIN changes
}

Auf anderen Hinweis, Sie Lesen möchten, können diese für die Tests in perl ... http://perlandmac.blogspot.com/2007/08/using-perl-testsimple-and-testmore.html

Andere Tipps

Wenn Sie sind auf der Suche nach mehr XUnit-Stil-Prüfung, check out Test::Class.Es bietet die Test(setup) und Test(teardown) Attribute für Methoden, die, auch, set-up und reißen unten Ihre Umgebung.Es gibt Ihnen auch eine viel bessere Möglichkeit, den Umgang mit Plänen (Sie können für jede test-Methode individuell, so dass die Zählung ist viel weniger fummelig) und können Sie Erben tests durch test-Klasse Hierarchien.

Ich glaube nicht, dass es eine offizielle Reihe von Konventionen, also würde ich empfehlen, sich die Beispiele an http://perldoc.perl.org/Test/More.html und sehen Sie, wie das schreiben von tests.

Wir verwenden Test::Mehr umfassend für unsere unit-tests als viele (die meisten) unserer Datenverarbeitung scripts in Perl geschrieben sind.Wir nicht haben eine bestimmte Konvention für die Funktionsnamen, sondern eher etwas wie Jagmal schlägt vor, nämlich brechen die tests bis in kleinere Stücke und initialisieren lokal.

In unserem Fall ist jeder untertest wird gekapselt in einer separaten Funktion innerhalb des test-Skript.Auf top von diese, wir haben einen Rahmen, der es uns ermöglicht alle untertests (die volle unit-test) oder rufen Sie die einzelnen subtests oder Gruppen von Teilprüfungen zu ermöglichen, für die Ausführung nur diejenigen, die wir arbeiten im moment.

Dank Der Espo.

Ich habe einen Blick auf die relevanten perldocs aber es gibt keinen wirklichen übereinkommen über die setup-und teardown Aspekte.

Nicht wie XUnit Reihe von tests.

Danke für die Antwort Jagmal aber ich bin mir nicht sicher über den BEGIN-und END-Blöcke für das setup und teardown, da nicht klar ist, was Sie tun, indem Sie die Namen.Es gibt auch das offensichtliche problem, nur eine setup ausführen, und eine teardown laufen pro test, d.h.pro jeder .t-Datei.

Ich habe einen kurzen Blick auf den Test::die Meisten und es sieht wirklich interessant, vor allem die explain-Funktion.Danke Matt.

Hmmm.Nur weiterdenken über die Verwendung der BEGIN-und END-Blöcke, ich denke, wenn ich Verringerung der Granularität der tests, so dass es nur eine setup-und eine teardown benötigt, dann wäre dies eine gute Lösung.

cheers,

Rob

Erste Konvention, die ich vorschlagen würde ist Notwasserung Test::Mehr für den Test::am Meisten

Perl-Test-Skripten sind nicht spezielle oder Magie in keiner Weise.Als solche, die Sie enthalten können, die genau die gleichen Dinge, dass alle anderen Perl-Skript.

Sie können den Namen für Routinen alles, was Sie wollen, und nennen Sie vor, nach und intertwingled mit, Ihre tests.

Sie können eine beliebige Menge von code für die Initialisierung, bevor irgendwelche tests, jede Menge cleanup-code nach tests und jede Menge anderer code, gemischt mit tests.

Dies alles setzt Voraus, dass Sie sind reden über CPAN-Stil-t/*.t-test-Skripts.Ich denke, Sie sind, aber ich kann verwalten, zu Lesen, Ihre Frage über die Verlängerung test harnesses, wenn ich schielen, gerade Recht.

Wenn Sie offen sind, um in die Akzeptanz-Tests ebenso, wie Ruby ' s Gurken - werfen Sie einen Blick auf dieses kleine Beispiel http://github.com/kesor/p5-cucumber mit Test::Mehr und eine Gurke Stil der Abnahme.

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