アノテーションインターフェース 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 5.7 以降、JUnit Jupiter にも @DisabledIf という名前の条件アノテーションがあります。Spring の @DisabledIf サポートを使用する場合は、正しいパッケージからアノテーション型をインポートするようにしてください。

導入:
5.0
作成者:
Sam Brannen, Tadaya Tsuyukubo
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    アノテーション付きのテストクラスまたはテストメソッドが無効かどうかを判断するために評価される式。
    boolean
    expression() を評価するために、現在のテストに関連付けられている ApplicationContext を積極的にロードする必要があるかどうか。
    このテストが無効になっている理由。
    expression() のエイリアス。reason() および loadContext() が指定されていない場合にのみ使用することを意図しています。
  • 要素の詳細

    • value

      @AliasFor("expression") StringSE value
      expression() のエイリアス。reason() および loadContext() が指定されていない場合にのみ使用することを意図しています。
      関連事項:
      デフォルト:
      ""
    • expression

      @AliasFor("value") StringSE 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") は論理的に無意味であるため、プロパティプレースホルダーの動的解決の結果ではないテキストリテラルは、実際的な値はゼロであることに注意してください。

      関連事項:
      デフォルト:
      ""
    • reason

      StringSE reason
      このテストが無効になっている理由。
      関連事項:
      デフォルト:
      ""
    • loadContext

      boolean loadContext
      expression() を評価するために、現在のテストに関連付けられている ApplicationContext を積極的にロードする必要があるかどうか。

      デフォルトは false であるため、テストアプリケーションコンテキストが不必要に読み込まれることはありません。式がシステムプロパティまたは環境変数のみに基づいている場合、またはテストのアプリケーションコンテキストで Bean と相互作用しない場合、テストを無効にしてしまうと時間の浪費になるため、コンテキストを時期尚早にロードする必要はありません。

      関連事項:
      デフォルト:
      false