android-使用DatePicker记录Espresso测试
作者:互联网
记录器生成的代码在记录后无法立即运行.
原因是在录制时,我点击了年份,弹出了年份微调框,然后向后滚动,然后选择年份之一.记录器无法捕获滚动.
在Xcode中,他们添加了一种滚动到该项的方法.在Espresso中找不到类似的内容.
(使用Android Studio 2.3.)
解决方法:
我已经很长时间没有使用记录仪了,而是手动编写了我的测试,所以不确定这个答案是否对您有帮助.
我使用此行在日期选择器中设置日期:
onView(withClassName(Matchers.equalTo(DatePicker.class.getName()))).perform(PickerActions.setDate(year, monthOfYear, dayOfMonth));
PickerActions在特殊的espresso支持库中(espresso-contrib),将其像这样添加到gradle文件中(我需要几个排除项,以防止由于支持库版本不匹配而导致编译错误):
androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.2') {
exclude group: 'com.android.support', module: 'appcompat'
exclude module: 'support-annotations'
exclude module: 'support-v4'
exclude module: 'support-v13'
exclude module: 'recyclerview-v7'
exclude module: 'appcompat-v7'
}
然后,我在帮助器方法中使用此方法,该方法单击打开日期选择器的按钮,设置日期并通过单击确定按钮进行确认:
public static void setDate(int datePickerLaunchViewId, int year, int monthOfYear, int dayOfMonth) {
onView(withParent(withId(buttonContainer)), withId(datePickerLaunchViewId)).perform(click());
onView(withClassName(Matchers.equalTo(DatePicker.class.getName()))).perform(PickerActions.setDate(year, monthOfYear, dayOfMonth));
onView(withId(android.R.id.button1)).perform(click());
}
然后在我的测试中像这样使用它:
TestHelper.setDate(R.id.date_button, 2017, 1, 1);
//TestHelper is my helper class that contains the helper method above
标签:android,android-espresso 来源: https://codeday.me/bug/20191012/1897403.html