我试图在单元测试中使用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
将对象转换为toString()
,但这只会给我一个内存地址,而不是任何其他堆栈跟踪。我确信有一种方法可以获得其他堆栈跟踪并且解决方案很简单,但我无法解决这个问题。
答案 0 :(得分:0)
在做了一些研究之后,我发现ErrorCollector
实际上在测试结束时打印了所有失败。仅显示最后一次失败的原因是由于Android Studio的设计方式。要获取其他堆栈跟踪,必须直接查看Logcat输出。