0

Robotium と ActivityInstrumentationTestCase2 を使用していますが、テスト ケースごとにアプリを完全に再起動する必要があります。アプリは、最初のテスト ケースに続くすべてのテスト ケースでビュー ID を見つけるわけではありません。

これは、私のビューが TestCase2 で null であることを意味し、意味がありません。

アプリにはロード画面があります。この読み込み画面は 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は下の2つのようになります。testCase2 の起動時にスタート画面にいるのですが、まったく新しいアプリが起動しませんでした。

@Override
public void setUp() throws Exception {
    super.setUp();
    solo = new MySolo(getInstrumentation(), getActivity());
}

@Override
public void tearDown() throws Exception {
    solo.finishOpenedActivities();
    super.tearDown();
}

編集:質問を編集しました。どちらのメソッドも異なるアクティビティにあります。

4

1 に答える 1

0

findViewById の代わりに solo.getView() を使用します。

于 2013-08-15T11:18:02.637 に答える