Intent Test启动Activity后,后续单元测试挂起

时间:2013-07-12 21:58:14

标签: android unit-testing android-activity hang

寻找一些单元测试的帮助,该测试在上一次测试启动活动后失败。我没有得到的是下一次测试的挂起 - 启动活动测试正确完成。

这是我的测试,它启动了一个带有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);
}

它一直挂起,直到我退出这个过程。我已经尝试在我的拆解()中明确地将我的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()测试运行正常......

感谢。

0 个答案:

没有答案