我很少有课程可以测试我的应用程序。如果持续时间超过 4 秒,我想测试失败。我的代码破坏了测试,但在某些情况下它不会执行下一个测试类。
当我写的时候(和超时无关,只是fail()的一个例子):
public void testSmth() {
fail("msg");
}
失败跟踪是空的,它会中断测试并开始另一个。但是当我想让它像超时一样时:
public void testSmth() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
fail("msg");
}
}, 4000);
// some tests (that even lasts more than 4 secons) like clickOnImage() etc.
}
它破坏了测试,但它不执行下一个测试,并且在失败跟踪中有:
测试未能完成。原因:“仪器运行因“junit.framework.AssertionFailedError”而失败。检查设备 logcat 以获取详细信息
在 LogCat 中我得到了:
07-26 11:46:07.428:E/AndroidRuntime(6195):致命异常:Timer-1
07-26 11:46:07.428: E/AndroidRuntime(6195): junit.framework.AssertionFailedError: msg
07-26 11:46:07.428: E/AndroidRuntime(6195): at junit.framework.Assert.fail(Assert.java:47)
07-26 11:46:07.428: E/AndroidRuntime(6195): 在 java.util.Timer$TimerImpl.run(Timer.java:284)
或者也许还有其他方法可以做我想做的事?
谢谢。