ユニットテストでErrorCollector
を使用して、アサーションの失敗がテストを中止しないようにしようとしています。代わりに、テストの最後に失敗の数を確認し、その数がゼロより大きい場合にのみテストを失敗させたいと思います。JUnitのErrorCollectorを使用して、発生した障害の数を確認するにはどうすればよいですか?
だから私の基本的なテストは、次のようになります。
@RunWith(AndroidJUnit4.class)
public class SampleAndroidTest {
@Rule
public ErrorCollector errors = new ErrorCollector();
@Test
public void testErrorCollector() throws Exception {
try {
assertEquals(1, 1); // should pass
} catch (Throwable t) {
errors.addError(t);
}
try {
assertEquals(1, 2); // should fail
} catch (Throwable t) {
errors.addError(t);
}
try {
assertEquals(1, 3); // should fail
} catch (Throwable t) {
errors.addError(t);
}
}
}
しかし、私はerrors
オブジェクトに何をすべきかわかりません。 Javadocs for ErrorCollector
は、失敗回数などを取得する方法を示していません。現在の方法では、最後の失敗のみが表示されます。
を使ってオブジェクトをString
に変換しようとしましたが、メモリアドレスだけが与えられ、他のスタックトレースはありません。私は、他のスタックトレースを得る方法があること、そしてその解決策は簡単だと確信していますが、私の人生のためにそれを理解することはできません。
あなたのテストが本当にこのようなものなら、「理論」テストまたは「パラメータ化」テストの使用を検討する必要があります。あるいは、[assertJ soft assertions](http://joel-costigliola.github.io/assertj/assertj-core-features-highlight.html#soft-assertions)をチェックしてください。 –