📅  最后修改于: 2020-12-06 09:36:20             🧑  作者: Mango
如前所述,查看操作会自动执行用户在android应用程序中可执行的所有可能操作。 Espresso onView和“ onData”提供了perform方法,该方法接受视图操作并在测试环境中调用/自动执行相应的用户操作。例如,“ click()”是一个视图操作,当传递给onView( R.id.myButton ) .perform(click())方法时,将触发按钮的单击事件(ID为“ myButton” )在测试环境中。
在本章中,让我们了解浓缩咖啡测试框架提供的视图操作。
typeText()接受String类型的一个参数(文本)并返回视图操作。返回的视图操作将提供的文本键入视图。在放置文本之前,它会轻按一次视图。如果内容已经包含文本,则可以将其放置在任意位置。
onView(withId(R.id.text_view)).perform(typeText("Hello World!"))
typeTextIntoFocusedView()与typeText()相似,区别在于它将文本放置在视图中光标位置旁边。
onView(withId(R.id.text_view)).perform(typeTextIntoFocusedView("Hello World!"))
replaceText()与typeText()相似,区别在于它替换视图的内容。
onView(withId(R.id.text_view)).perform(typeTextIntoFocusedView("Hello World!"))
clearText()没有参数,并返回视图操作,该操作将清除视图中的文本。
onView(withId(R.id.text_view)).perform(clearText())
pressKey()接受键代码(例如KeyEvent.KEYCODE_ENTER)并返回视图操作,该操作将按与键代码对应的键。
onView(withId(R.id.text_view)).perform(typeText(
"Hello World!", pressKey(KeyEvent.KEYCODE_ENTER))
pressMenuKey()没有参数,并返回视图操作,该操作将按硬件菜单键。
onView(withId(R.id.text_view)).perform(typeText(
"Hello World!", pressKey(KeyEvent.KEYCODE_ENTER), pressMenuKey())
closeSoftKeyboard()没有参数,并返回一种视图操作,如果打开了键盘,它将关闭键盘。
onView(withId(R.id.text_view)).perform(typeText(
"Hello World!", closeSoftKeyboard())
click()没有参数,并返回视图操作,该操作将调用视图的点击操作。
onView(withId(R.id.button)).perform(click())
doubleClick()没有参数,并返回视图操作,该操作将调用视图的双击操作。
onView(withId(R.id.button)).perform(doubleClick())
longClick()没有参数,并返回视图操作,该操作将调用视图的长按操作。
onView(withId(R.id.button)).perform(longClick())
pressBack()没有参数,并返回视图操作,该操作将单击“后退”按钮。
onView(withId(R.id.button)).perform(pressBack())
pressBackUnconditionally()没有参数,返回一个视图操作,该操作将单击后退按钮,并且如果后退按钮动作退出应用程序本身,则不会引发异常。
onView(withId(R.id.button)).perform(pressBack())
openLink()有两个参数。第一个参数(链接文本)的类型为Matcher,并引用HTML锚标记的文本。第二个参数(url)是Matcher类型,它引用HTML锚标记的url。它仅适用于TextView 。它返回一个视图操作,该操作收集文本视图内容中可用的所有HTML锚标记,找到与第一个参数(链接文本)和第二个参数(URL)匹配的锚标记,最后打开相应的URL。让我们考虑一个文本视图,其内容为-
然后,可以使用以下测试用例打开并测试链接,
onView(withId(R.id.text_view)).perform(openLink(is("copyright"),
is(Uri.parse("http://www.google.com/"))))
在这里,openLink将获取文本视图的内容,找到具有版权的文本链接,将www.google.com作为URL,然后在浏览器中打开该URL。
openLinkWithText()有一个参数,可以是** String *类型或Matcher。这只是openLink *方法的捷径。
onView(withId(R.id.text_view)).perform(openLinkWithText("copyright"))
openLinkWithUri()有一个参数,可以是String或Matcher类型。这是一个简单的捷径到OpenLink的*方法。
onView(withId(R.id.text_view)).perform(openLinkWithUri("http://www.google.com/"))
pressImeActionButton()没有参数,并返回视图操作,该操作将执行android:imeOptions配置中设置的操作。例如,如果android:imeOptions等于actionNext,这会将光标移动到屏幕中下一个可能的EditText视图。
onView(withId(R.id.text_view)).perform(pressImeActionButton())
scrollTo()没有参数,并返回视图操作,该操作将在屏幕上滚动匹配的scrollView。
onView(withId(R.id.scrollView)).perform(scrollTo())
swipeDown()没有参数,并返回视图操作,该操作将在屏幕上触发向下滑动操作。
onView(withId(R.id.root)).perform(swipeDown())
swipeUp()没有参数,并返回视图操作,该操作将在屏幕上触发向上滑动操作。
onView(withId(R.id.root)).perform(swipeUp())
swipeRight()没有参数,并返回视图操作,该操作将在屏幕上触发向右滑动操作。
onView(withId(R.id.root)).perform(swipeRight())
swipeLeft()没有参数,并返回视图操作,该操作将在屏幕上向左滑动。
onView(withId(R.id.root)).perform(swipeLeft())