Vor und BeforeClass in JUnit
Die Funktion @Before
-Annotation wird vor jeder Testfunktion in der Klasse ausgeführt, die die @Test
-Annotation hat, ausgeführt, aber die Funktion mit @BeforeClass
wird nur einmal vor allen Testfunktionen in der Klasse ausgeführt.
Ebenso wird die Funktion mit der @After
-Annotation nach jeder Testfunktion in der Klasse ausgeführt, die die @Test
-Annotation hat, aber die Funktion mit der @AfterClass
-Annotation wird nur einmal nach allen Testfunktionen in der Klasse ausgeführt.
SampleClass
public class SampleClass {
public String initializeData(){
return "Initialisieren";
}
public String processDate(){
return "Verarbeiten";
}
}
SampleTest
public class SampleTest {
private SampleClass sampleClass;
@BeforeClass
public static void beforeClassFunction(){
System.out.println("Vor der Klasse");
}
@Before
public void beforeFunction(){
sampleClass=new SampleClass();
System.out.println("Vor der Funktion");
}
@After
public void afterFunction(){
System.out.println("Nach der Funktion");
}
@AfterClass
public static void afterClassFunction(){
System.out.println("Nach der Klasse");
}
@Test
public void initializeTest(){
Assert.assertEquals("Initialisierung überprüfen", "Initialisieren", sampleClass.initializeData() );
}
@Test
public void processTest(){
Assert.assertEquals("Verarbeitungsüberprüfung", "Verarbeiten", sampleClass.processDate() );
}
}
Ausgabe
Vor der Klasse
Vor der Funktion
Nach der Funktion
Vor der Funktion
Nach der Funktion
Nach der Klasse
In Junit 5
@Before = @BeforeEach
@BeforeClass = @BeforeAll
@After = @AfterEach
@AfterClass = @AfterAll