@EnabledIfアノテーションを使用したSpring5テスト
1. 序章
このクイック記事では、JUnit5を使用したSpring5の@EnabledIfおよび@DisabledIfアノテーションについて説明します。
簡単に言えば、これらの注釈により、指定された条件が満たされた場合に特定のテストを無効/有効にすることができます。
簡単なテストクラスを使用して、これらのアノテーションがどのように機能するかを示します。
@SpringJUnitConfig(Spring5EnabledAnnotationIntegrationTest.Config.class)
public class Spring5EnabledAnnotationIntegrationTest {
@Configuration
static class Config {}
}
2. @EnabledIf
テキストリテラル“ true”を使用したこの簡単なテストをクラスに追加しましょう。
@EnabledIf("true")
@Test
void givenEnabledIfLiteral_WhenTrue_ThenTestExecuted() {
assertTrue(true);
}
このテストを実行すると、正常に実行されます。
ただし、提供された String を“ false” に置き換えると、実行されません。
テストを静的に無効にする場合は、専用の@Disabledアノテーションがあることに注意してください。
3. @EnabledIfプロパティプレースホルダー付き
@EnabledIf を使用するより実用的な方法は、プロパティプレースホルダーを使用することです。
@Test
@EnabledIf(
expression = "${tests.enabled}",
loadContext = true)
void givenEnabledIfExpression_WhenTrue_ThenTestExecuted() {
// ...
}
まず、Springコンテキストが読み込まれるように、loadContextパラメーターがtrueに設定されていることを確認する必要があります。
デフォルトでは、このパラメーターは false に設定されており、不要なコンテキストのロードを回避しています。
4. @EnabledIfSpEL式を使用
最後に、 Spring Expression Language(SpEL)式で注釈を使用できます。
たとえば、JDK1.8を実行している場合にのみテストを有効にできます
@Test
@EnabledIf("#{systemProperties['java.version'].startsWith('1.8')}")
void givenEnabledIfSpel_WhenTrue_ThenTestExecuted() {
assertTrue(true);
}
5. @DisabledIf
このアノテーションは、@EnabledIf。の反対です。
たとえば、Java1.7で実行しているときにテストを無効にできます。
@Test
@DisabledIf("#{systemProperties['java.version'].startsWith('1.7')}")
void givenDisabledIf_WhenTrue_ThenTestNotExecuted() {
assertTrue(true);
}
6. 結論
この簡単な記事では、SpringExtensionを使用したJUnit5テストでの@EnabledIfおよび@DisabledIfアノテーションの使用例をいくつか紹介しました。
例の完全なソースコードは、GitHubでから入手できます。