新版的的 app 使用了 FramgentActivity
robotium 测试代码 执行 tearDown() 时,报错:
Test run failed: Instrumentation run failed due to 'android.support.v4.app.SuperNotCalledException'
07-22 14:27:04.256: E/AndroidRuntime(22760): FATAL EXCEPTION: main
07-22 14:27:04.256: E/AndroidRuntime(22760): Process: com.abc.xyz, PID: 22760
07-22 14:27:04.256: E/AndroidRuntime(22760): java.lang.RuntimeException: Unable to destroy activity
{com.abc.xyz/com.abc.xyz.ui.main.HomeActivity}:
android.support.v4.app.SuperNotCalledException:
Fragment UserCenterFragment{41f50ba8 #2 id=0x7f0f00fe 2131690503} did not call through to super.onDestroy()
原来的 tearDown()
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
我修改了一下 tearDown:
@Override
public void tearDown() throws Exception {
// solo.finishOpenedActivities();
while (solo.getCurrentActivity().getLocalClassName()
.equals("ui.main.HomeActivity") == false) {
solo.goBack();
}
solo.getCurrentActivity().finish();
}
一个 testcase 没问题 ; 2 个 testcase 的话 第二个还是报
Test run failed: Instrumentation run failed due to 'android.support.v4.app.SuperNotCalledException'
PS: onDestroy 已经添加 super.onDestroy();
@Override
protected void onDestroy() {
super.onDestroy();
doReallyStop(false);
mFragments.dispatchDestroy();
if (mLoaderManager != null) {
mLoaderManager.doDestroy();
}
}