2

我正在尝试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对象。JavadocsErrorCollector没有指出任何获取失败次数等的方法。使用当前方法,只显示最后一次失败。

我尝试String通过 using将对象转换为 a toString(),但这只会给我一个内存地址,而不是任何其他堆栈跟踪。我确信有一种方法可以获取其他堆栈跟踪,并且解决方案很简单,但我一生都无法弄清楚。

4

1 回答 1

0

在做了更多的研究之后,我发现它ErrorCollector实际上在测试结束时打印了所有的失败。仅显示最后一次失败的原因是由于 Android Studio 的设计方式。要获取其他堆栈跟踪,必须直接查看 Logcat 输出。

于 2016-12-10T05:43:21.707 回答