2

ErrorCollectorアサーションの失敗によってテストが中止されないように、単体テストで使用しようとしています。代わりに、テストの最後に失敗の数を確認し、その数が 0 より大きい場合にのみテストを失敗させたいと考えています。

したがって、私の基本的なテストは次のようになります。

@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ただし、オブジェクトをどうするかはわかりません。のJavadoc はErrorCollector、失敗の数などを取得する方法を示していません。現在のアプローチでは、最後の失敗のみが表示されています。

Stringを使用してオブジェクトを に変換しようとしましたtoString()が、メモリ アドレスのみが得られ、他のスタック トレースは得られません。他のスタックトレースを取得する方法があり、解決策は簡単だと確信していますが、一生それを理解することはできません.

4

1 に答える 1

0

さらに調査を行った後ErrorCollector、テストの最後にすべての失敗が実際に出力されることがわかりました。最後の失敗のみが表示された理由は、Android Studio の設計方法によるものです。他のスタック トレースを取得するには、Logcat の出力を直接表示する必要があります。

于 2016-12-10T05:43:21.707 に答える