アノテーションインターフェース DisabledIf
@DisabledIf は、アノテーション付きのテストクラスまたはテストメソッドが無効になっていることを通知するために使用されます。指定された expression() が true と評価される場合は実行しないでください。クラスレベルで適用すると、そのクラス内のすべてのテストメソッドも自動的に無効になります。
基本的な例については、expression() の Javadoc を参照してください。
このアノテーションは、カスタム合成アノテーションを作成するためのメタアノテーションとして使用できます。例: カスタム @DisabledOnMac アノテーションは次のように作成できます。
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@DisabledIf(
expression = "#{systemProperties['os.name'].toLowerCase().contains('mac')}",
reason = "Disabled on Mac OS"
)
public @interface DisabledOnMac {}
@DisabledOnMac は、可能なことの例としてのみ意図されていることに注意してください。その正確な使用例がある場合は、JUnit Jupiter に組み込まれている @DisabledOnOs(MAC) サポートを使用してください。
JUnit Jupiter には @DisabledIf という条件アノテーションも存在します。Spring の @DisabledIf サポートを使用する場合は、適切なパッケージからアノテーション型をインポートするようにしてください。
- 導入:
- 5.0
- 作成者:
- Sam Brannen, Tadaya Tsuyukubo
- 関連事項:
オプション要素の概要
オプション要素修飾子と型オプションの要素説明アノテーション付きのテストクラスまたはテストメソッドが無効かどうかを判断するために評価される式。booleanexpression()を評価するために、現在のテストに関連付けられているApplicationContextを積極的にロードする必要があるかどうか。このテストが無効になっている理由。
要素の詳細
value
- 関連事項:
- デフォルト:
""
expression
アノテーション付きのテストクラスまたはテストメソッドが無効かどうかを判断するために評価される式。式が
Boolean.TRUESE または"true"に等しいStringSE(大文字と小文字を区別しない)と評価される場合、テストは無効になります。式は次のいずれかになります。
- Spring 式言語(SpEL)式 — 例:
@DisabledIf("#{systemProperties['os.name'].toLowerCase().contains('mac')}") - Spring
Environmentで利用可能なプロパティのプレースホルダー — 例:@DisabledIf("${smoke.tests.disabled}") - テキストリテラル — 例:
@DisabledIf("true")
ただし、
@DisabledIf("true")は@Disabledと同等であり、@DisabledIf("false")は論理的に無意味であるため、プロパティプレースホルダーの動的解決の結果ではないテキストリテラルは、実際的な値はゼロであることに注意してください。- 関連事項:
- デフォルト:
""
- Spring 式言語(SpEL)式 — 例:
reason
loadContext
boolean loadContextexpression()を評価するために、現在のテストに関連付けられているApplicationContextを積極的にロードする必要があるかどうか。デフォルトは
falseであるため、テストアプリケーションコンテキストが不必要に読み込まれることはありません。式がシステムプロパティまたは環境変数のみに基づいている場合、またはテストのアプリケーションコンテキストで Bean と相互作用しない場合、テストを無効にしてしまうと時間の浪費になるため、コンテキストを時期尚早にロードする必要はありません。- 関連事項:
- デフォルト:
false