我正在使用Robotium和ActivityInstrumentationTestCase2,我需要在每个测试用例后完全重启我的应用程序。应用程序在第一个测试用例之后找不到视图ID。
这意味着我的视图在TestCase2中为空,这没有意义。
该应用有一个加载屏幕。此加载屏幕仅出现在testCase1之前,solo.getCurrentActivity()返回不同的Activity实例。
public void testCase1() throws Exception {
solo.getCurrentActivity(); //returns LoadingActivity
solo.sleep(5000);
solo.getCurrentActivity(); //returns MainActivity
View view = (TextView) solo.findViewById("Button1", TIMEOUT_VIEW_SEARCH);
solo.clickOnView(view);
}
public void testCase2() throws Exception {
solo.getCurrentActivity(); //returns LoadingActivity
solo.sleep(5000);
solo.getCurrentActivity(); //returns LoadingActivity
View view = (TextView) solo.findViewById("Button1", TIMEOUT_VIEW_SEARCH);
solo.clickOnView(view);
}
方法findviewById(...)根据当前活动搜索视图的ID。这很好。
setUp和tearDown看起来像下面的两个。当testCase2启动时,我在启动屏幕上,但应用程序没有全新启动。
@Override
public void setUp() throws Exception {
super.setUp();
solo = new MySolo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
super.tearDown();
}
编辑:我编辑了这个问题。两种方法都在不同的活动中。
答案 0 :(得分:0)
使用solo.getView()而不是findViewById。