Anotasi SpringJUnitConfig dan SpringJUnitWebConfig di Spring 5

1. Perkenalan

Dalam artikel ini cepat, kita akan melihat pada baru @SpringJUnitConfig dan @SpringJUnitWebConfig anotasi tersedia di Spring 5.

Anotasi ini adalah komposisi anotasi JUnit 5 dan Spring 5 yang membuat pembuatan pengujian lebih mudah dan lebih cepat.

2. @SpringJUnitConfig

@SpringJUnitConfig menggabungkan 2 anotasi ini:

  • @ExtendWith (SpringExtension.class) dari JUnit 5 untuk menjalankan pengujian dengankelas SpringExtension dan
  • @ContextConfiguration dari Pengujian Musim Semi untuk memuat konteks Musim Semi

Mari buat tes dan gunakan anotasi ini dalam praktiknya:

@SpringJUnitConfig(SpringJUnitConfigIntegrationTest.Config.class) public class SpringJUnitConfigIntegrationTest { @Configuration static class Config {} }

Perhatikan bahwa, berbeda dengan @ContextConfiguration , kelas konfigurasi dideklarasikan menggunakan atribut value . Namun, lokasi sumber daya harus ditentukan dengan atribut lokasi .

Kami sekarang dapat memverifikasi bahwa konteks Spring benar-benar dimuat:

@Autowired private ApplicationContext applicationContext; @Test void givenAppContext_WhenInjected_ThenItShouldNotBeNull() { assertNotNull(applicationContext); }

Terakhir, di sini kita memiliki kode yang setara dengan @SpringJUnitConfig (SpringJUnitConfigTest.Config.class):

@ExtendWith(SpringExtension.class) @ContextConfiguration(classes = SpringJUnitConfigTest.Config.class)

3. @SpringJUnWebConfig

@SpringJUnitWebConfig menggabungkan anotasi yang sama dari @SpringJUnitConfig ditambah @WebAppConfiguration dari pengujian Spring - untuk memuat WebApplicationContext .

Mari kita lihat cara kerja anotasi ini:

@SpringJUnitWebConfig(SpringJUnitWebConfigIntegrationTest.Config.class) public class SpringJUnitWebConfigIntegrationTest { @Configuration static class Config { } }

Seperti @SpringJUnitConfig , kelas konfigurasi masuk ke atribut nilai dan sumber daya apa pun ditentukan menggunakan atribut lokasi .

Selain itu, atribut nilai @WebAppConfiguration sekarang harus ditentukan menggunakan atribut resourcePath . Secara default, atribut ini disetel ke "src / main / webapp" .

Sekarang mari kita verifikasi bahwa WebApplicationContext benar-benar dimuat:

@Autowired private WebApplicationContext webAppContext; @Test void givenWebAppContext_WhenInjected_ThenItShouldNotBeNull() { assertNotNull(webAppContext); }

Sekali lagi, di sini kami memiliki kode yang setara tanpa menggunakan @SpringJUnitWebConfig :

@ExtendWith(SpringExtension.class) @WebAppConfiguration @ContextConfiguration(classes = SpringJUnitWebConfigIntegrationTest.Config.class)

4. Kesimpulan

Dalam tutorial singkat ini, kami menunjukkan bagaimana menggunakan baru diperkenalkan @SpringJUnitConfig dan @SpringJUnitWebConfig penjelasan di Spring 5.

Kode sumber lengkap untuk contoh tersedia di GitHub.