【发布时间】:2016-04-03 07:35:57
【问题描述】:
我正在尝试为带有 espresso 框架的 Android APP 编写一些 UI 测试。
现在我只是检查启动屏幕上是否存在所有元素,然后尝试单击登录按钮。
当按钮被点击时,测试由于错误而失败,我似乎无法理解为什么会发生这种情况。
我的测试代码是
@RunWith(AndroidJUnit4.class)
@SmallTest
public class WelcomeTest {
@Rule
public ActivityTestRule<Welcome> mActivityRule = new ActivityTestRule<>(
Welcome.class);
@Test
public void elements_present() {
// Check login
onView(withId(R.id.wv_login)).check(matches(isDisplayed()));
// Check signup
onView(withId(R.id.wv_signup)).check(matches(isDisplayed()));
// Check video
onView(withId(R.id.videoView)).check(matches(isDisplayed()));
// Check swipe right
onView(withId(R.id.videoView)).perform(swipeRight());
// Check swipe left
onView(withId(R.id.videoView)).perform(swipeLeft());
}
@Test
public void tap_login() {
// Tap login button
onView(withId(R.id.wv_login)).perform(click());
}
}
我得到的输出是:
原因:java.lang.RuntimeException:由于目标视图不匹配以下一个或多个约束,将不会执行操作: 至少 90% 的视图区域会显示给用户。
这是什么意思,这是由我的测试方法引起的还是代码上的错误?该应用似乎在我的设备上运行良好。
PS:按照 espresso 文档的建议,我已禁用动画
【问题讨论】:
标签: android android-espresso ui-testing