0

在上一个测试启动 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() 测试运行良好......

谢谢。

4

0 回答 0