Die Anmerkungen SpringJUnitConfig und SpringJUnitWebConfig in Spring 5
1. Einführung
In diesem kurzen Artikel werfen wir einen Blick auf die neuen Anmerkungen@SpringJUnitConfig und@SpringJUnitWebConfig, die in Frühjahr 5 verfügbar sind.
These annotations are a composition of JUnit 5 and Spring 5 annotations, die die Testerstellung einfacher und schneller machen.
2. @SpringJUnitConfig
@SpringJUnitConfig kombiniert diese 2 Anmerkungen:
-
@ExtendWith(SpringExtension.class) from JUnit 5, um den Test mit der KlasseSpringExtension und auszuführen
-
@ContextConfiguration from Spring Testing, um den Spring-Kontext zu laden
Erstellen wir einen Test und verwenden Sie diese Anmerkung in der Praxis:
@SpringJUnitConfig(SpringJUnitConfigIntegrationTest.Config.class)
public class SpringJUnitConfigIntegrationTest {
@Configuration
static class Config {}
}
Notice that, in contrast to the @ContextConfiguration, configuration classes are declared using the value attribute. Ressourcenpositionen sollten jedoch mit dem Attributlocations 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 äquivalenten Code von@SpringJUnitConfig(SpringJUnitConfigTest.Config.class):
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = SpringJUnitConfigTest.Config.class)
3. @SpringJUnitWebConfig
@SpringJUnitWebConfigcombines the same annotations of @SpringJUnitConfig plus the @WebAppConfiguration from Spring testing - um dieWebApplicationContext zu laden.
Mal sehen, wie diese Anmerkung funktioniert:
@SpringJUnitWebConfig(SpringJUnitWebConfigIntegrationTest.Config.class)
public class SpringJUnitWebConfigIntegrationTest {
@Configuration
static class Config {
}
}
Wie@SpringJUnitConfig werdenthe configuration classes go in the value attribute und alle Ressourcen mit dem Attributlocations angegeben.
Außerdem sollte das Attributvalue von@WebAppConfiguration jetzt mit dem AttributresourcePath angegeben werden. By default, this attribute is set to “src/main/webapp”.
Lassen Sie uns nun überprüfen, obWebApplicationContext 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 im Frühjahr 5 neu eingeführten Anmerkungen@SpringJUnitConfig und@SpringJUnitWebConfig verwendet werden.
Der vollständige Quellcode für die Beispiele istover on GitHub verfügbar.