De Annotaties SpringJUnitConfig en SpringJUnitWebConfig in Spring 5

1. Inleiding

In dit korte artikel zullen we het nieuwe bekijken @BuienRadarNL en @SpringJUnitWebConfig annotaties beschikbaar in Spring 5.

Deze annotaties zijn een compositie van JUnit 5- en Spring 5-annotaties die het maken van tests eenvoudiger en sneller maken.

2. @BuienRadarNL

@BuienRadarNL combineert deze 2 annotaties:

  • @ExtendWith (SpringExtension.class) vanaf JUnit 5 om de test uit te voeren met de Voorjaarsuitbreiding klasse en
  • @ContextConfiguration van Spring Testing om de Spring-context te laden

Laten we een test maken en deze annotatie in de praktijk gebruiken:

@SpringJUnitConfig (SpringJUnitConfigIntegrationTest.Config.class) openbare klasse SpringJUnitConfigIntegrationTest {@Configuration statische klasse Config {}}

Merk op dat, in tegenstelling tot de @ContextConfigurationworden configuratieklassen gedeclareerd met behulp van de waarde attribuut. Resource-locaties moeten echter worden opgegeven met de locaties attribuut.

We kunnen nu verifiëren dat de Spring-context echt is geladen:

@Autowired privé ApplicationContext applicationContext; @Test ongeldig gegevenAppContext_WhenInjected_ThenItShouldNotBeNull () {assertNotNull (applicationContext); }

Eindelijk hebben we hier de equivalente code van @SpringJUnitConfig (SpringJUnitConfigTest.Config.class):

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

3. @SpringJUnitWebConfig

@SpringJUnitWebConfigcombineert dezelfde annotaties van @BuienRadarNL plus de @WebAppConfiguration van Spring testing - om het WebApplicationContext.

Laten we eens kijken hoe deze annotatie werkt:

@SpringJUnitWebConfig (SpringJUnitWebConfigIntegrationTest.Config.class) openbare klasse SpringJUnitWebConfigIntegrationTest {@Configuration statische klasse Config {}}

Leuk vinden @BuienRadarNL, de configuratieklassen gaan in de waarde attribuut en alle bronnen worden gespecificeerd met behulp van de locaties attribuut.

Ook de waarde kenmerk van @WebAppConfiguration moet nu worden opgegeven met de resourcePath attribuut. Dit kenmerk is standaard ingesteld op "Src / main / webapp".

Laten we nu verifiëren dat het WebApplicationContext was echt geladen:

@Autowired privé WebApplicationContext webAppContext; @Test ongeldig gegevenWebAppContext_WhenInjected_ThenItShouldNotBeNull () {assertNotNull (webAppContext); }

Nogmaals, hier hebben we de equivalente code zonder @SpringJUnitWebConfig:

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

4. Conclusie

In deze korte tutorial hebben we laten zien hoe we het nieuw geïntroduceerde @BuienRadarNL en @SpringJUnitWebConfig annotaties in het voorjaar 5.

De volledige broncode voor de voorbeelden is beschikbaar op GitHub.