私のアプリケーションにはいくつかの実行モードがあり、そのうちの 1 つのモードでは、一部のテストで具体的な例外がスローされるのが普通です。例外がスローされた場合にメソッドをスキップするように設定する @SkipOnFail のようなもので、このメソッドに注釈を付ける必要があります。
前もって感謝します!
@Edit(私の質問をより明確にするため)
@Test(expected=ConcreteException.class)
ConcreteException.class がスローされなかった場合でもテストに合格する必要があるため (この例外がスローされない場合、junit の予期されるタグはテストを失敗としてマークします)、それ以外の場合はスキップする必要があるため、私にとっては機能しません。他のすべての場合では、いつものように動作するはずです。
私のために働いた@Solution(junit v4.7)thxから@axtavt
@Rule
public MethodRule skipRule = new MethodRule() {
public Statement apply(final Statement base, FrameworkMethod method, Object target) {
if(method.getAnnotation(SkipOnFail.class) == null) return base;
return new Statement() {
@Override
public void evaluate() throws Throwable {
try{
base.evaluate();
} catch (ConcreteException e) {
Assume.assumeTrue(false);
}
}
};
}
};
@どうも