我今天正在单元测试一个简单的应用程序。我有一个方法
protected void onRestart() {
disp.setText("The numbers you entered were");
super.onRestart();
}
在我的测试用例中,我使用
public void testRestart(){
String dispText = disp.getText().toString();
getInstrumentation().callActivityOnStop(mActivity);
assertEquals(dispText, disp.getText().toString());
}
断言返回文本未更改的真实含义。然而,当我使用时
public void testRestart(){
String dispText = disp.getText().toString();
getInstrumentation().callActivityOnRestart(mActivity);
assertEquals(dispText, disp.getText().toString());
}
断言如预期的那样是错误的。
根据活动生命周期,如果用户离开活动,则应始终在onStop()之后调用onRestart()。
onRestart()方法不应该在onStop()之后调用吗?还是调用getInstrumentation().callActivityOnStop(mActivity);
会杀死活动,而不是仅仅停止它?
ActivityUnitTestCase是单个活动的独立单元测试。测试中的活动不参与系统交互。
您可以使用startActivity()
启动Activity,它将调用onCreate()
,但是,如果您希望进一步练习Activity生命周期方法,则必须从测试用例中自己调用它们。