我正在尝试测试两个不同的Activity
类,其中一个Activity
恰好调用另一个。这是我的代码,然后我将解释问题:
介绍活动测试
public class IntroActivityTest extends ActivityInstrumentationTestCase2<IntroActivity> {
IntroActivity activity;
public IntroActivityTest() {
super( IntroActivity.class );
}
@Override
protected void setUp() throws Exception {
super.setUp();
activity = getActivity();
}
public void testIntroBypass() {
if ( new SharedPreferencesHelper( getInstrumentation().getTargetContext() ).retrieveUserToken() == null ) {
assertTrue( !activity.isFinishing() );
}
else {
assertTrue( activity.isFinishing() );
}
}
}
根活动测试:
public class RootActivityTest extends ActivityInstrumentationTestCase2<RootActivity> {
RootActivity activity;
public RootActivityTest() {
super( RootActivity.class );
}
@Override
protected void setUp() throws Exception {
super.setUp();
activity = getActivity();
}
public void testInitialTab() {
assertTrue( activity.getSupportActionBar().getSelectedTab().getText().toString().equalsIgnoreCase( "Library" ) );
}
}
在IntroActivityTest
中,如果来自的用户令牌SharedPreferences
不为空,则立即开始RootActivity
。如果它为空,它会保持在IntroActivity
. 问题是,如果它不为空,则第一个测试 ( IntroActivityTest
) 通过,然后它挂在getActivity()
方法调用上RootActivityTest
,测试只是冻结...没有异常,它只是挂在该行上。如果用户令牌为空,它会完全正常运行这两个测试。
这可能是什么原因造成的?从观察来看,似乎RootActivityTest
正在尝试使用RootActivity
从 开始的IntroActivity
,但它不应该开始自己的实例RootActivity
吗?