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();
}
編集:質問を編集しました。どちらのメソッドも異なるアクティビティにあります。