Spring 5のSpringJUnitConfigおよびSpringJUnitWebConfigアノテーション

1前書き

このクイック記事では、Spring 5で使用可能な新しい @ SpringJUnitConfig および @ SpringJUnitWebConfig アノテーションを見てみましょう。

  • これらのアノテーションはJUnit 5とSpring 5のアノテーションを組み合わせたもので** 、テスト作成がより簡単かつ迅速になります。

2 @ SpringJUnitConfig

@ SpringJUnitConfig はこれら2つのアノテーションを組み合わせたものです。

  • @ ExtendWith(SpringExtension.class) JUnit 5 からテストを実行する

SpringExtension クラスと SpringをロードするためのSpring Testingからの @ ContextConfiguration

コンテキスト

テストを作成し、実際にこの注釈を使用しましょう。

@SpringJUnitConfig(SpringJUnitConfigIntegrationTest.Config.class)
public class SpringJUnitConfigIntegrationTest {

    @Configuration
    static class Config {}
}
  • @ ContextConfiguration とは対照的に、設定クラスは value 属性を使用して宣言されていることに注意してください。** ただし、リソースの場所は locations 属性で指定する必要があります。

これで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 と同様に、 設定クラスは value 属性 に入り、リソースは locations 属性を使って指定されます。

また、 @ 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結論

この簡単なチュートリアルでは、Spring 5で新しく導入された @​​ SpringJUnitConfig および @ SpringJUnitWebConfig アノテーションの使い方を示しました。

例の完全なソースコードはhttps://github.com/eugenp/tutorials/tree/master/spring-5[GitHubで利用可能]です。