実行時仮定による動的テストの除外
JUnit 4 では、 @Ignore アノテーションにより、テスト ケースを実行から除外する便利な方法が提供されます。ただし、実行時情報に基づいてテストを条件付きで無視する必要があるシナリオもあります。
org.junit.Assume を使用した解決策
でテストを動的に無視するための推奨されるアプローチJUnit 4 では org.junit.Assume クラスを使用します。 Assume.assumeTrue() は引数としてブール条件を受け取ります。実行時に条件が false と評価される場合、テストは無効とみなされ無視されます。
@Before public void beforeMethod() { org.junit.Assume.assumeTrue(someCondition()); // Rest of setup... }
これは @Before メソッド内またはテスト ケース内で直接使用できますが、@After メソッド内では使用できません。テスト ケース内で使用した場合でも、@Before メソッドは実行されます。 @BeforeClass 内で assignTrue() を利用して、クラスの初期化を防ぐこともできます。
junit-ext @RunIf との比較
別のオプションは、 @RunIf アノテーションを使用することです。 junit-ext ライブラリ。ただし、Assume.assumeTrue() を使用すると、次のようないくつかの利点があります。
結論として、org.junit.Assume を使用すると、JUnit 4 のランタイム情報に基づいて条件付きでテストを無視する柔軟で標準化された方法が提供されます。
以上が実行時の条件に基づいて JUnit 4 テストを動的に除外するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。