每个测试用例后重新启动App

时间:2013-08-14 12:59:36

标签: android testing android-activity robotium

我正在使用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();
}

编辑:我编辑了这个问题。两种方法都在不同的活动中。

1 个答案:

答案 0 :(得分:0)

使用solo.getView()而不是findViewById。