在上一个测试启动 Activity 之后,为失败的单元测试寻求一些帮助。我不明白的是,下一次测试挂起 - 启动活动测试正确完成。
这是我的测试,它启动了一个带有 Intent 的 Activity,它似乎通过了
public final void testStartsIntent() {
Instrumentation inst = getInstrumentation();
Intent intent = new Intent(mActivity,uk.co.example.activity.TargetActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ActivityMonitor monitor = inst.addMonitor(uk.co.example.activity.TargetActivity.class.getName(), null, false);
inst.startActivitySync(intent);
monitor.waitForActivityWithTimeout(2000);
assertEquals(1, monitor.getHits());
Activity randomActivity = monitor.getLastActivity();
inst.removeMonitor(monitor);
}
好像没问题吧?
一旦我的下一个测试运行
public final void testPreconditions(){
assertNotNull(mActivity);
}
它挂起,直到我退出该过程。我已经尝试在我的 teardown() 中将我的 mActivity 显式设置为 null,但这无关紧要。这是我的设置和拆卸
protected void setUp() throws Exception {
super.setUp();
mActivity = getActivity();
mResultList = (ListView) mActivity.findViewById(android.R.id.list);
mTextField = (TextView) mActivity.findViewById(uk.co.example.R.id.txtResultViewHeader);
String items[] = {"1","2"};
mAdapter = new ArrayAdapter<String>(mActivity,android.R.id.list,items);
}
protected void tearDown() throws Exception {
super.tearDown();
}
任何人都知道为什么后续测试会挂起 - 大概是 mActivity 没有处于正确的状态,但为什么挂起而不是错误?值得补充的是,如果您删除 testStartIntent 测试, testPreconditions() 测试运行良好......
谢谢。