0
だから、私は自分のアプリケーション全体をテストしています。今、私はすべての写真を撮りたいです。それには2つのアクティビティと多数のフラグメントがあるため、すべてのアクティビティの最初の断片だけを取るので、動作させることはできません。スプーンとエスプレッソのテスト
私はどのようにすべての断片の写真を撮ることができますか?それはあなたを取得します
private Activity getActivityInstance() {
getInstrumentation().runOnMainSync(new Runnable() {
public void run() {
Collection resumedActivities = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(RESUMED);
if (resumedActivities.iterator().hasNext()) {
currentActivity = (Activity) resumedActivities.iterator().next();
}
}
});
return currentActivity;
}
:あなたはスクリーンショットを作成するためのコンテキストを必要とするとき
@RunWith(AndroidJUnit4.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class HearthBeatUITest {
private final int MILISECONDS_TIMEOUT = 300;
@Rule
public IntentsTestRule<IntroActivity> mActivityRule = new IntentsTestRule<>(IntroActivity.class);
private Activity currentActivity;
}
今、あなたは、このメソッドを呼び出します:
@RunWith(AndroidJUnit4.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class HearthBeatUITest {
private final int MILISECONDS_TIMEOUT = 700;
@Rule
public ActivityTestRule<IntroActivity> mActivityRule = new ActivityTestRule<>(IntroActivity.class);
@Rule
public ActivityTestRule<LoginActivity> mLoginActivityRule = new ActivityTestRule<>(LoginActivity.class);
@Test
/**
* Testing all the screens on the application if they are actually there
*/
public void startTest() {
Session.clear();
Spoon.screenshot(mActivityRule.getActivity(), "initial_state");
threadSleep(MILISECONDS_TIMEOUT);
onView(withId(R.id.button_register)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mLoginActivityRule.getActivity(), "register_intro");
onView(withId(R.id.register_with_email)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mLoginActivityRule.getActivity(), "register_detailed");
onView(withId(R.id.image_left_button)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mLoginActivityRule.getActivity(), "register_intro");
onView(withId(R.id.image_left_button)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mActivityRule.getActivity(), "initial_state");
onView(withId(R.id.button_signin)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mLoginActivityRule.getActivity(), "login_intro");
onView(withId(R.id.sign_in_emal)).check(matches(isDisplayed())).perform(click());
threadSleep(MILISECONDS_TIMEOUT);
Spoon.screenshot(mLoginActivityRule.getActivity(), "login_detailed");
}
}
フラグメントにアニメーションがありますか?アニメーションを削除し、dev設定のアニメーションもオフにします。 – WenChao