Skip to main content

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..");
}