junit Suite Tests, in Phasen: Alle @Before, dann werden alle @Test, dann werden alle @After

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

  •  29-09-2019
  •  | 
  •  

Frage

Ich hätte gerne ein junit Läufer mögen, die alle @Before Methoden ausgeführt wird, dann alle @Test Methoden, dann alle @After Methoden.

Dies ist, wie mein System-Tests arbeiten. Die @Before Methoden laufen, zum Einrichten der Testdaten und Szenarien. Die Anwendung wird gestartet. Dann werden die @Test Methoden werden mit der Anwendung laufen im Hintergrund ausgeführt wird. Diese @Test Methoden können Daten oder reagieren auf die Anwendung ändern. Dann wartet der Rahmen für die Anwendung bis zu beenden. Danach werden die @After Methoden ausführen, um die Testergebnisse zu überprüfen.

Ich verwende bereits junit Anmerkungen Behauptung Methoden und verschiedene andere Bits. Aber ich kann einfach nicht herausfinden, wie junits Läufer verwenden Testmethoden auf diese Weise auszuführen. Ich kann nicht Köpfe noch Schwanz der „Computer“ Schnittstelle in junit machen 4,8, oder herauszufinden, wie diese anzuwenden Regeln.

War es hilfreich?

Lösung

Das ist nicht das, was JUnit tut. JUnit hat eine Design-Philosophie, die unabhängig von Unit-Tests betont. Als solches ist es für Systemtests kein natürlicher Rahmen. Was Sie wollen gut in TestNG passt zu tun (die als Design-Ziel versucht beide Einheit und Systemtests spreizen).

In JUnit die @Before und @After werden laufen vor und nach jeder Test. Sie können diese Art der Sache in JUnit Schuhanzieher eine Suite mit, die Referenzen alle Tests und für alle Auf- und Abbau verantwortlich ist, so dass die Suite @BeforeClass und @AfterClass Methoden vor laufen lassen und nach der Suite, die, wenn Sie es organisieren richtig konnte alle Ihre Systemtests sein.

Es gibt viele organisatorische Herausforderungen im Code, wenn es mit dem JUnit Ansatz groß wird, so würde ich vorschlagen, Sie betrachten und alternative Rahmen, wenn dies die Masse von dem, was Sie tun mögen.

Andere Tipps

Ich glaube, Sie dies nur eine tatsächliche Testverfahren zu lösen, indem sie, dass nur Anrufe Ihre eigentlichen Tests sind, die Sie nicht ausdrücklich erklären, wie Ddiese.

Kinda wie:

@Before
public void beforeTest(){}

@After
public void afterTest(){}

@Test
public void test(){
    test1();
    test2();
    test3();
}

public void test1(){}

public void test2(){}

public void test3(){}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top