2017-02-07 2 views
0

こんにちは私のアクティビティのテストを書かなければなりませんが、ActivitySplashActivityは2500ms前に実行する必要があります。エスプレッソでスプラッシュ画面が終了してからテストを開始するまで待つ方法

私のテストクラス:

@RunWith(AndroidJUnit4.class) 
public class GuestActivityTest{ 

    @Rule 
    public ActivityTestRule<GuestActivity> mActivityTestRule = new ActivityTestRule<GuestActivity>(GuestActivity.class, true, false){ 
     @Override 
     protected void afterActivityLaunched() { 
      super.afterActivityLaunched(); 
     } 
    }; 



    @Test 
    public void goToMenuActivity() { 
     onView(withId(R.id.button_log_in)).perform(typeText("Works")); 
     onView(withId(R.id.menu_btn)).perform(click()); 
    } 
} 

SplashActivityで初期化が行われていないため、テストは毎回クラッシュします。 Activityが既にロードされていることをエスプレッソに知らせるか、最初にSplashActivityが終了するのを待つか?

答えて

1

試用版:

アプリの実行遅延に合わせてスレッドをスリープします。

@Test 
public void goToMenuActivity() { 
    try { 
    Thread.sleep(60000); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } 
    onView(withId(R.id.button_log_in)).perform(typeText("Works")); 
    onView(withId(R.id.menu_btn)).perform(click()); 
} 
+0

非常に美しいわけではありませんが、大量のコードなしで動作します。 – anil

関連する問題