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.


$config[zx-auto] not found$config[zx-overlay] not found