Merknadene SpringJUnitConfig og SpringJUnitWebConfig våren 5
1. Introduksjon
I denne raske artikkelen tar vi en titt på det nye @SpringJUnitConfig og @SpringJUnitWebConfig merknader tilgjengelig våren 5.
Disse kommentarene er en sammensetning av JUnit 5 og Spring 5-merknader som gjør testopprettingen enklere og raskere.
2. @SpringJUnitConfig
@SpringJUnitConfig kombinerer disse 2 kommentarene:
- @ExtendWith (SpringExtension.class) fra JUnit 5 å kjøre testen med SpringExtension klasse og
- @ContextConfiguration fra Spring Testing for å laste inn vårkonteksten
La oss lage en test og bruke denne kommentaren i praksis:
@SpringJUnitConfig (SpringJUnitConfigIntegrationTest.Config.class) offentlig klasse SpringJUnitConfigIntegrationTest {@Configuration statisk klasse Config {}}
Legg merke til at, i motsetning til @ContextConfigurationkonfigureres klasser med verdi Egenskap. Imidlertid bør ressurslokaliseringer spesifiseres med lokasjoner Egenskap.
Vi kan nå bekrefte at vårkonteksten virkelig ble lastet:
@Autowired privat ApplicationContext applicationContext; @Test ugyldig gittAppContext_WhenInjected_ThenItShouldNotBeNull () {assertNotNull (applicationContext); }
Til slutt, her har vi den tilsvarende koden for @SpringJUnitConfig (SpringJUnitConfigTest.Config.class):
@ExtendWith (SpringExtension.class) @ContextConfiguration (klasser = SpringJUnitConfigTest.Config.class)
3. @SpringJUnitWebConfig
@SpringJUnitWebConfigkombinerer de samme kommentarene til @SpringJUnitConfig pluss @WebAppConfiguration fra vårprøving - for å laste WebApplicationContext.
La oss se hvordan denne kommentaren fungerer:
@SpringJUnitWebConfig (SpringJUnitWebConfigIntegrationTest.Config.class) offentlig klasse SpringJUnitWebConfigIntegrationTest {@Configuration static class Config {}}
Som @SpringJUnitConfig, konfigurasjonsklassene går i verdi Egenskap og eventuelle ressurser spesifiseres ved hjelp av lokasjoner Egenskap.
Også, den verdi attributt av @WebAppConfiguration skal nå spesifiseres ved hjelp av resourcePath Egenskap. Som standard er denne attributtet satt til “Src / main / webapp”.
La oss nå kontrollere at WebApplicationContext var virkelig lastet:
@Autowired privat WebApplicationContext webAppContext; @Test ugyldig givenWebAppContext_WhenInjected_ThenItShouldNotBeNull () {assertNotNull (webAppContext); }
Igjen, her har vi tilsvarende kode uten å bruke @SpringJUnitWebConfig:
@ExtendWith (SpringExtension.class) @WebAppConfiguration @ContextConfiguration (klasser = SpringJUnitWebConfigIntegrationTest.Config.class)
4. Konklusjon
I denne korte opplæringen viste vi hvordan du bruker den nylig introduserte @SpringJUnitConfig og @SpringJUnitWebConfig merknader våren 5.
Den fullstendige kildekoden for eksemplene er tilgjengelig på GitHub.