Before & After Unit Test
BeforeEach & AfterEach
Kadang kita ingin menjalankan kode yang sama sebelum dan setelah eksekusi unit test. Hal ini sebenarnya bisa dilakukan secara manual di function @Test nya, namun hal ini akan membuat kode duplikat banyak sekali.
JUnit memiliki annotation @BeforeEach dan @AfterEach. @BeforeEach digunakan untuk menandai function yang akan dieksekusi sebelum unit test dijalankan, sedangkan @AfterEach digunakan untuk menandai function yang akan dieksekusi setelah unit test dijalankan
Ingat, bahwa ini akan selalu dieksekusi setiap kali untuk function @Test, bukan sekali untuk class test saja.
@BeforeEach
public void testBeforeCallTestMehod() {
System.out.println("Sebelum memanggil method Test..");
}
@AfterEach
public void testAfterCallTestMehod() {
System.out.println("Setelah memanggil method Test..");
}
Ketika test dijalankan maka akan dieksekusi setiap sebelum/sesudah masing-masing method dalam unit test dijalankan.
BeforeAll & AfterAll
@BeforeEach & @AfterEach akan dieksekusi setiap kali method @Test jalan. Namun kadang kita ingin melakukan sesuatu sebelum semua unit test berjalan, atau setelah semua unit test berjalan. Ini bisa dilakukan menggunakan annotation @BeforeAll dan @AfterAll. Namun hanya static method yang bisa menggunakan @BeforeAll dan @AfterAll.
@BeforeAll
public static void testBeforeCallTest() {
System.out.println("Sebelum memanggil class Test..");
}
@AfterAll
public static void testAfterCallTest() {
System.out.println("Setelah memanggil class Test..");
}