SpringJUnitConfig et SpringJUnitWebConfig Annotations au printemps 5
1. introduction
Dans cet article rapide, nous allons examiner les nouvelles annotations@SpringJUnitConfig et@SpringJUnitWebConfig disponibles au printemps 5.
These annotations are a composition of JUnit 5 and Spring 5 annotations qui rendent la création de test plus facile et plus rapide.
2. @SpringJUnitConfig
@SpringJUnitConfig combine ces 2 annotations:
-
@ExtendWith(SpringExtension.class) from JUnit 5 pour exécuter le test avec la classeSpringExtension et
-
@ContextConfiguration from Spring Testing pour charger le contexte Spring
Créons un test et utilisons cette annotation en pratique:
@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. Cependant, les emplacements des ressources doivent être spécifiés avec l'attributlocations.
Nous pouvons maintenant vérifier que le contexte Spring était vraiment chargé:
@Autowired
private ApplicationContext applicationContext;
@Test
void givenAppContext_WhenInjected_ThenItShouldNotBeNull() {
assertNotNull(applicationContext);
}
Enfin, nous avons ici le code équivalent de@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 - pour charger lesWebApplicationContext.
Voyons comment fonctionne cette annotation:
@SpringJUnitWebConfig(SpringJUnitWebConfigIntegrationTest.Config.class)
public class SpringJUnitWebConfigIntegrationTest {
@Configuration
static class Config {
}
}
Comme@SpringJUnitConfig,the configuration classes go in the value attribute et toutes les ressources sont spécifiées à l'aide de l'attributlocations.
De plus, l'attributvalue de@WebAppConfiguration doit maintenant être spécifié à l'aide de l'attributresourcePath. By default, this attribute is set to “src/main/webapp”.
Vérifions maintenant que leWebApplicationContext a bien été chargé:
@Autowired
private WebApplicationContext webAppContext;
@Test
void givenWebAppContext_WhenInjected_ThenItShouldNotBeNull() {
assertNotNull(webAppContext);
}
Encore une fois, nous avons ici le code équivalent sans utiliser@SpringJUnitWebConfig:
@ExtendWith(SpringExtension.class)
@WebAppConfiguration
@ContextConfiguration(classes = SpringJUnitWebConfigIntegrationTest.Config.class)
4. Conclusion
Dans ce bref didacticiel, nous avons montré comment utiliser les annotations@SpringJUnitConfig et@SpringJUnitWebConfig nouvellement introduites au printemps 5.
Le code source complet des exemples est disponibleover on GitHub.