JUnit5 @RunWith

1. Perkenalan

Dalam artikel singkat ini, kami akan membahas penggunaan anotasi @RunWith dalam kerangka JUnit 5.

Dalam JUnit 5, yang @RunWith anotasi telah digantikan oleh yang lebih kuat @ExtendWith penjelasan .

Namun, anotasi @RunWith masih dapat digunakan di JUnit5 demi kompatibilitas ke belakang.

2. Menjalankan Tes Dengan Pelari Berbasis JUnit4

Kita dapat menjalankan pengujian JUnit5 dengan lingkungan JUnit lama lainnya menggunakan anotasi @RunWith .

Mari kita lihat contoh menjalankan pengujian ini dalam versi Eclipse yang hanya mendukung JUnit4.

Pertama, mari buat kelas yang akan kita uji:

public class Greetings { public static String sayHello() { return "Hello"; } }

Selanjutnya, mari buat tes JUnit5 sederhana ini:

public class GreetingsTest { @Test void whenCallingSayHello_thenReturnHello() { assertTrue("Hello".equals(Greetings.sayHello())); } }

Terakhir, mari tambahkan anotasi ini agar dapat menjalankan pengujian:

@RunWith(JUnitPlatform.class) public class GreetingsTest { // ... }

Kelas JUnitPlatform adalah pelari berbasis JUnit4 yang memungkinkan kita menjalankan pengujian JUnit4 di Platform JUnit.

Mari kita perlu diingat bahwa JUnit4 tidak mendukung semua fitur dari JUnit platform baru, jadi pelari ini memiliki fungsi terbatas.

Jika kami memeriksa hasil pengujian di Eclipse, kami dapat melihat bahwa pelari JUnit4 digunakan:

3. Menjalankan Pengujian di Lingkungan JUnit5

Sekarang mari kita jalankan pengujian yang sama dalam versi Eclipse yang mendukung JUnit5. Dalam kasus ini, kami tidak memerlukan anotasi @RunWith lagi dan kami dapat menulis pengujian tanpa runner:

public class GreetingsTest { @Test void whenCallingSayHello_thenReturnHello() { assertTrue("Hello".equals(Greetings.sayHello())); } }

Hasil pengujian menunjukkan bahwa kami sekarang menggunakan runner JUnit5:

4. Bermigrasi dari Runner Berbasis JUnit4

Sekarang mari kita migrasikan pengujian yang menggunakan runner berbasis JUnit4 ke JUnit5.

Kami akan menggunakan tes Musim Semi sebagai contoh:

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = { SpringTestConfiguration.class }) public class GreetingsSpringTest { // ... }

Jika kita ingin memindahkan tes ini ke JUnit5 kita perlu mengganti anotasi @RunWith dengan @ExtendWith baru :

@ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { SpringTestConfiguration.class }) public class GreetingsSpringTest { // ... }

Kelas SpringExtension disediakan oleh Spring 5 dan mengintegrasikan Framework Spring TestContext ke JUnit 5. Anotasi @ExtendWith menerima semua kelas yang mengimplementasikan antarmuka Ekstensi .

5. Kesimpulan

Dalam artikel singkat ini, kami membahas penggunaan anotasi @RunWith JUnit 4 dalam kerangka kerja JUnit5.

Kode sumber lengkap untuk contoh tersedia di GitHub.