Spring5のSpringJUnitConfigおよびSpringJUnitWebConfigアノテーション
1. 序章
このクイック記事では、Spring5で使用可能な新しい@ SpringJUnitConfigおよび@SpringJUnitWebConfigアノテーションを確認します。
これらのアノテーションは、JUnit5とSpring5のアノテーションを組み合わせたものであり、テストの作成をより簡単かつ迅速に行うことができます。
2. @SpringJUnitConfig
@SpringJUnitConfig は、次の2つのアノテーションを組み合わせたものです。
- JUnit 5の@ExtendWith(SpringExtension.class)を使用して、SpringExtensionクラスと
- @ContextConfiguration from Spring Testing to load Spring context
テストを作成して、このアノテーションを実際に使用してみましょう。
@SpringJUnitConfig(SpringJUnitConfigIntegrationTest.Config.class)
public class SpringJUnitConfigIntegrationTest {
@Configuration
static class Config {}
}
@ContextConfigurationとは対照的に、構成クラスはvalue属性を使用して宣言されることに注意してください。ただし、リソースの場所はlocation属性で指定する必要があります。
これで、Springコンテキストが実際にロードされたことを確認できます。
@Autowired
private ApplicationContext applicationContext;
@Test
void givenAppContext_WhenInjected_ThenItShouldNotBeNull() {
assertNotNull(applicationContext);
}
最後に、 @SpringJUnitConfig(SpringJUnitConfigTest.Config.class):と同等のコードがあります。
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = SpringJUnitConfigTest.Config.class)
3. @SpringJUnitWebConfig
@SpringJUnitWebConfig は、@SpringJUnitConfigの同じアノテーションとSpringテストの@WebAppConfigurationを組み合わせて、WebApplicationContextをロードします。
この注釈がどのように機能するかを見てみましょう。
@SpringJUnitWebConfig(SpringJUnitWebConfigIntegrationTest.Config.class)
public class SpringJUnitWebConfigIntegrationTest {
@Configuration
static class Config {
}
}
@SpringJUnitConfig と同様に、構成クラスは値属性に入り、リソースはlocation属性を使用して指定されます。
また、@WebAppConfigurationのvalue属性は、resourcePath属性を使用して指定する必要があります。 デフォルトでは、この属性は「src / main/webapp」に設定されています。
WebApplicationContextが実際にロードされたことを確認しましょう。
@Autowired
private WebApplicationContext webAppContext;
@Test
void givenWebAppContext_WhenInjected_ThenItShouldNotBeNull() {
assertNotNull(webAppContext);
}
ここでも、@SpringJUnitWebConfigを使用しない同等のコードがあります。
@ExtendWith(SpringExtension.class)
@WebAppConfiguration
@ContextConfiguration(classes = SpringJUnitWebConfigIntegrationTest.Config.class)
4. 結論
この簡単なチュートリアルでは、Spring5で新しく導入された@SpringJUnitConfigおよび@SpringJUnitWebConfigアノテーションの使用方法を示しました。
例の完全なソースコードは、GitHubでから入手できます。