2017-02-02 12 views

答えて

1

を呼び出すにはtestButtonの関数には、2つの行があり、最初はボタンをクリックし、もう1つは結果のアクティビティを確認することです

エスプレッソはメインスレッドでうまく動作するので、あなたの細かいところで

2

あなたはおそらく、この持っている:

@Rule 
public ActivityTestRule<MyActivity> testRule = new ActivityTestRule<>(MyActivity.class); 

を次に、あなたが呼び出すことができます。

testRule.getActivity() 

Activityのインスタンスを取得します。

ちょうどあなたがボタンをクリックする過程をシミュレートして、スタックの最上部の活動は、あなたが

@RunWith(AndroidJUnit4.class) 
public class YourTestClass{ 


    @Test 
    public void testButton() { 
     Espresso.onView(ViewMatchers.withId(R.id.yourButtonId)).perform(ViewActions.click()); 

     Assert.assertEquals(getActivityInstance().getClass(), YourActivityThatShouldStart.class); 
    } 

    private Activity getActivityInstance() { 
     final Activity[] currentActivity = {null}; 
     InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() { 
      public void run() { 
       Collection resumedActivities = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED); 
       if (resumedActivities.iterator().hasNext()) { 
        currentActivity[0] = (Activity) resumedActivities.iterator().next(); 
       } 
      } 
     }); 

     return currentActivity[0]; 
    } 

} 

を探しているものであればテストする必要があります

testRule.getActivity() instanceof MyActivity 
関連する問題