Sehen Sie sich einen JUnit-Bericht an. JUnit ist bereits nach Paketen organisiert. Jedes Paket hat (oder kann) TestSuite-Klassen, von denen jede wiederum mehrere Testfälle ausführt. Jeder TestCase kann mehrere Testmethoden des Formulars haben public void test*()
, von denen jede tatsächlich eine Instanz der TestCase-Klasse wird, zu der sie gehören. Jede Testmethode (TestCase-Instanz) hat einen Namen und ein Bestanden / Nicht Bestanden-Kriterium.
Was mein Management benötigt, ist das Konzept einzelner TestStep- Elemente, von denen jedes seine eigenen Bestanden / Nicht Bestanden- Kriterien angibt . Das Fehlschlagen eines Testschritts darf die Ausführung nachfolgender Testschritte nicht verhindern.
In der Vergangenheit haben Testentwickler in meiner Position TestCase-Klassen in Paketen organisiert, die den Teilen des zu testenden Produkts entsprechen, eine TestCase-Klasse für jeden Test erstellt und jede Testmethode zu einem separaten "Schritt" im Test gemacht. komplett mit eigenen Pass / Fail-Kriterien in der JUnit-Ausgabe. Jeder TestCase ist ein eigenständiger "Test", aber die einzelnen Methoden oder Testschritte innerhalb des TestCase müssen in einer bestimmten Reihenfolge ausgeführt werden.
Die TestCase-Methoden waren die Schritte des TestCase, und Testdesigner erhielten pro Testschritt ein separates Pass / Fail-Kriterium. Jetzt sind die Testschritte durcheinander und die Tests schlagen (natürlich) fehl.
Zum Beispiel:
Class testStateChanges extends TestCase
public void testCreateObjectPlacesTheObjectInStateA()
public void testTransitionToStateBAndValidateStateB()
public void testTransitionToStateCAndValidateStateC()
public void testTryToDeleteObjectinStateCAndValidateObjectStillExists()
public void testTransitionToStateAAndValidateStateA()
public void testDeleteObjectInStateAAndObjectDoesNotExist()
public void cleanupIfAnythingWentWrong()
Jede Testmethode bestätigt und meldet ihre eigenen Pass / Fail-Kriterien. Wenn Sie dies zum Zwecke der Bestellung in "eine große Testmethode" zusammenfassen, wird die Granularität der Pass / Fail-Kriterien für jeden "Schritt" im JUnit-Zusammenfassungsbericht verloren. ... und das ärgert meine Manager. Sie fordern derzeit eine andere Alternative.
Kann jemand erklären, wie eine JUnit mit verschlüsselter Testmethodenreihenfolge separate Pass / Fail-Kriterien für jeden sequentiellen Testschritt unterstützt, wie oben beispielhaft dargestellt und von meinem Management gefordert?
Unabhängig von der Dokumentation sehe ich dies als ernsthafte Regression im JUnit-Framework, die vielen Testentwicklern das Leben schwer macht.