Die Anmerkungen SpringJUnitConfig und SpringJUnitWebConfig in Spring 5

1. Einleitung

In diesem kurzen Artikel werfen wir einen Blick auf die neuen Annotationen @SpringJUnitConfig und @SpringJUnitWebConfig, die in Spring 5 verfügbar sind.

Diese Anmerkungen sind eine Zusammenstellung von Anmerkungen zu JUnit 5 und Spring 5 , die die Testerstellung einfacher und schneller machen.

2. @SpringJUnitConfig

@SpringJUnitConfig kombiniert diese 2 Anmerkungen:

  • @ExtendWith (SpringExtension.class) von JUnit 5 , um den Test mit der SpringExtension- Klasse und auszuführen
  • @ContextConfiguration von Spring Testing zum Laden des Spring-Kontexts

Lassen Sie uns einen Test erstellen und diese Anmerkung in der Praxis verwenden:

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

Beachten Sie, dass Konfigurationsklassen im Gegensatz zur @ContextConfiguration mithilfe des value- Attributs deklariert werden . Ressourcenstandorte sollten jedoch mit dem Attribut location angegeben werden.

Wir können jetzt überprüfen, ob der Spring-Kontext wirklich geladen wurde:

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

Schließlich haben wir hier den entsprechenden Code von @SpringJUnitConfig (SpringJUnitConfigTest.Config.class):

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

3. @SpringJUnitWebConfig

@SpringJUnitWebConfig kombiniert die gleichen Anmerkungen von @SpringJUnitConfig plus der @WebAppConfiguration aus Spring-Tests , um den WebApplicationContext zu laden .

Mal sehen, wie diese Anmerkung funktioniert:

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

Wie bei @SpringJUnitConfig werden die Konfigurationsklassen in das value- Attribut eingefügt , und alle Ressourcen werden mithilfe des location- Attributs angegeben.

Außerdem sollte das value- Attribut von @WebAppConfiguration jetzt mithilfe des resourcePath- Attributs angegeben werden . Standardmäßig ist dieses Attribut auf "src / main / webapp" eingestellt .

Lassen Sie uns nun überprüfen, ob der WebApplicationContext wirklich geladen wurde:

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

Auch hier haben wir den entsprechenden Code ohne Verwendung von @SpringJUnitWebConfig :

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

4. Fazit

In diesem kurzen Tutorial haben wir gezeigt, wie die neu eingeführten Annotationen @SpringJUnitConfig und @SpringJUnitWebConfig in Spring 5 verwendet werden.

Der vollständige Quellcode für die Beispiele ist auf GitHub verfügbar.