我的测试套件中的一个测试用例有问题。我想要做的只是点击一个按钮并等待一个新的活动启动。
ActivityMonitor monitor = getInstrumentation().addMonitor(MyActivity.class.getName(), null, false);
TouchUtils.clickView(this, searchButton);
Activity a = getInstrumentation().waitForMonitorWithTimeout(monitor, 60);
assertNotNull("The MyActivity is null.", a);
根据文档,此代码应等待最多 60 秒以使监视器被击中。如果它被击中,则将返回活动(否则为 null)。
发生的情况是,有时测试会通过,但大多数时候它会失败,因为a == null
. 我正在观察运行的测试用例,我可以清楚地看到它没有等待 60 秒。只有一点。通过一些打印输出,我还注意到监视器实际上被击中,但返回的活动getLastActivity()
仍然是null
.
1)这怎么可能?
2)我能做些什么来避免它吗?