ビューアイテムをクリックした後、エスプレッソでアクティビティをアサートしますか?あなたのテストインサイドエスプレッソ:エスプレッソを使用してアイテムをクリックしたときに特定のアクティビティが開始された場合、私はどのようにアサートしますか
onView(withId(com.example.android.notepad.R.id.XYZ)).perform(click());
ビューアイテムをクリックした後、エスプレッソでアクティビティをアサートしますか?あなたのテストインサイドエスプレッソ:エスプレッソを使用してアイテムをクリックしたときに特定のアクティビティが開始された場合、私はどのようにアサートしますか
onView(withId(com.example.android.notepad.R.id.XYZ)).perform(click());
を呼び出すにはtestButtonの関数には、2つの行があり、最初はボタンをクリックし、もう1つは結果のアクティビティを確認することです
エスプレッソはメインスレッドでうまく動作するので、あなたの細かいところで
あなたはおそらく、この持っている:
@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