使用espresso在android中自动编号选择器

Pra*_*nit 8 android android-espresso

如何使用浓缩咖啡自动化数字选择器.我想在timePicker中使用espresso设置特定时间.

Lui*_*ano 16

要按类名称匹配View,您只需使用:

 onView(withClassName(Matchers.equalTo(TimePicker.class.getName())));
Run Code Online (Sandbox Code Playgroud)

获得ViewInteraction对象后,可以在其上设置一个值,用于定义和使用ViewAction,如下所示:

public static ViewAction setTime(final int hour, final int minute) {
        return new ViewAction() {
            @Override
            public void perform(UiController uiController, View view) {
                TimePicker tp = (TimePicker) view;
                tp.setCurrentHour(hour);
                tp.setCurrentMinute(minute)
            }
            @Override
            public String getDescription() {
                return "Set the passed time into the TimePicker";
            }
            @Override
            public Matcher<View> getConstraints() {
                return ViewMatchers.isAssignableFrom(TimePicker.class);
            }
        };
    }
Run Code Online (Sandbox Code Playgroud)


小智 10

匹配视图,然后执行操作:

ViewInteraction numPicker = onView(withClassName(Matchers.equalTo(NumberPicker.class.getName())));
numPicker.perform(setNumber(1));
Run Code Online (Sandbox Code Playgroud)

创建一个ViewAction来设置数字:

public static ViewAction setNumber(final int num) {
    return new ViewAction() {
        @Override
        public void perform(UiController uiController, View view) {
            NumberPicker np = (NumberPicker) view;
            np.setValue(num);

        }

        @Override
        public String getDescription() {
            return "Set the passed number into the NumberPicker";
        }

        @Override
        public Matcher<View> getConstraints() {
            return ViewMatchers.isAssignableFrom(NumberPicker.class);
        }
    };
}
Run Code Online (Sandbox Code Playgroud)