Zum Beispiel, wenn diese Tests ausgeführt werden, möchte ich sicherstellen, dass test_fizz
immer zuerst ausgeführt wird.
Aktualisieren : Warum möchte ich das tun? Mein Gedanke ist, dass ein früheres Scheitern durch bestimmte Tests (die die einfacheren, grundlegenderen Methoden testen) es leichter macht, Probleme im System aufzuspüren. Zum Beispiel hängt der Erfolg von bar
davon ab, dass fizz
korrekt funktioniert. Wenn fizz
kaputt ist, möchte ich das sofort wissen, denn es gibt keine Notwendigkeit, sich um bar
zu sorgen, was ebenfalls scheitern wird, aber mit viel komplizierterer Ausgabe in den Testergebnissen.
Benennen Sie die Tests, die Sie zuerst ausführen möchten, mit einem alphabetisch niedrigen Namen.
%Vor%Für die Lesbarkeit des Codes könnte dies je nach Standpunkt als hässlich oder hilfreich angesehen werden.
Tests innerhalb derselben Testklasse werden in der Reihenfolge aufgerufen, in der sie definiert sind. Testklassen werden jedoch in alphabetischer Reihenfolge nach Klassennamen ausgeführt.
Wenn Sie wirklich genaue Kontrolle benötigen, definieren Sie die Fizz- und Bar-Methoden mit einem anderen Präfix als test_
und rufen Sie sie innerhalb einer test_fizz_bar
-Methode in der richtigen Reihenfolge auf und führen Sie den Balken bei Erfolg des Fizz-Vorgangs aus.
BEARBEITEN: Es sieht so aus, als würden sich verschiedene Unit-Test-Frameworks unterschiedlich verhalten. Für JUnit in Eclipse scheint es, dass die Testfälle in zufälliger Reihenfolge ablaufen: Ordering unit Tests in der JUnit-Ansicht von Eclipse
Tags und Links ruby unit-testing testunit