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.