Espresso测试刷错了寻呼机

时间:2017-03-11 20:52:45

标签: android android-espresso

所以我有一个带有4个面板的向导,第一个有一个DatePicker,我在默认的日历模式下。

运行此代码时:

@RunWith(AndroidJUnit4.class) 公共类OnboardActivityTest {

@Rule
public ActivityTestRule<MainActivity> mActivityTestRule = new ActivityTestRule<>(MainActivity.class);

@Test
public void onboardActivityTest() {
    ViewInteraction appCompatButton = onView(
            allOf(withId(R.id.button), withText("Start Setup"),
                    withParent(allOf(withId(R.id.activity_main),
                            withParent(withId(android.R.id.content)))),
                    isDisplayed()));
    appCompatButton.perform(click());

    onView(withId(R.id.onboardingPager)).perform(swipeLeft());

测试会向左滑动日历,然后是下个月,而不是下一页。

当我在旋转模式下使用DatePicker之前,我有这个工作,它正确地使用了寻呼机。

我唯一能想到的是它无法找到寻呼机,因此滑动只是针对视图根运行?

如果我将其更改回微调模式,则页面会前进。

1 个答案:

答案 0 :(得分:0)

再次不确定它是否有帮助(因为我不知道您的确切布局如何):您可以尝试自定义滑动事件,您可以从中精确定义滑动的执行位置:

public static ViewAction customLeftSwipe() {
    return new GeneralSwipeAction(Swipe.FAST, GeneralLocation.BOTTOM_RIGHT,
            GeneralLocation.BOTTOM_LEFT, Press.FINGER);
}

用法:

onView(withId(R.id.onboardingPager)).perform(customLeftSwipe());