我今天在单元测试一个简单的应用程序。我有办法
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());
}
断言返回true,表示文本未更改。但是当我使用
public void testRestart(){
String dispText = disp.getText().toString();
getInstrumentation().callActivityOnRestart(mActivity);
assertEquals(dispText, disp.getText().toString());
}
该断言是错误的,如预期的那样。
根据活动的生命周期,如果用户离开活动,则应始终在onStop()之后调用onRestart()。
不应该在onStop()之后调用onRestart()方法吗?还是调用
getInstrumentation().callActivityOnStop(mActivity);
杀死了活动,而不仅仅是停止了它? 最佳答案
ActivityUnitTestCase是单个Activity的隔离的单元测试。被测活动不参与系统交互。
您可以使用startActivity()
启动Activity,它将调用onCreate()
,但是,如果您想进一步练习Activity生命周期方法,则必须在测试用例中自行调用它们。