Espresso TestingFramework-アクションの表示

前に学習したように、ビューアクションは、Androidアプリケーションでユーザーが実行できるすべての可能なアクションを自動化します。Espresso onViewおよび「onData」は、ビューアクションを受け入れ、テスト環境で対応するユーザーアクションを呼び出す/自動化するperformメソッドを提供します。たとえば、「click()」はビューアクションであり、onView(R.id.myButton.perform(click())メソッドに渡されると、ボタンのクリックイベントが発生します(ID:「myButton」)。 )テスト環境で。

この章では、エスプレッソテストフレームワークによって提供されるビューアクションについて学習しましょう。

typeText()

typeText()は、String型の1つの引数(テキスト)を受け入れ、ビューアクションを返します。返されたビューアクションは、提供されたテキストをビューに入力します。テキストを配置する前に、ビューを1回タップします。すでにテキストが含まれている場合、コンテンツは任意の位置に配置できます。

onView(withId(R.id.text_view)).perform(typeText("Hello World!"))

typeTextIntoFocusedView()

typeTextIntoFocusedViewは()に似ている)(typeTextそれは右隣のビューのカーソル位置にテキストを配置することを除いて。

onView(withId(R.id.text_view)).perform(typeTextIntoFocusedView("Hello World!"))

replaceText()

replaceText()は、ビューのコンテンツを置き換えることを除いて、typeText()に似ています。

onView(withId(R.id.text_view)).perform(typeTextIntoFocusedView("Hello World!"))

クリアテキスト()

clearText()には引数がなく、ビューアクションを返します。これにより、ビュー内のテキストがクリアされます。

onView(withId(R.id.text_view)).perform(clearText())

pressKey()

pressKey()はキーコード(KeyEvent.KEYCODE_ENTERなど)を受け入れ、ビューアクションを返します。ビューアクションは、キーコードに対応するキーを押します。

onView(withId(R.id.text_view)).perform(typeText(
   "Hello World!", pressKey(KeyEvent.KEYCODE_ENTER))

pressMenuKey()

pressMenuKey()には引数がなく、ハードウェアメニューキーを押すビューアクションを返します。

onView(withId(R.id.text_view)).perform(typeText(
   "Hello World!", pressKey(KeyEvent.KEYCODE_ENTER), pressMenuKey())

closeSoftKeyboard()

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()

longClick()には引数がなく、ビューアクションを返します。これにより、ビューのロングクリックアクションが呼び出されます。

onView(withId(R.id.button)).perform(longClick())

pressBack()

pressBack()には引数がなく、戻るボタンをクリックするビューアクションを返します。

onView(withId(R.id.button)).perform(pressBack())

pressBackUnconditionally()

pressBackUnconditionally()には引数がなく、ビューアクションを返します。これにより、戻るボタンをクリックし、戻るボタンアクションがアプリケーション自体を終了しても例外をスローしません。

onView(withId(R.id.button)).perform(pressBack())

openLink()

openLink()には2つの引数があります。最初の引数(リンクテキスト)はMatcher型であり、HTMLアンカータグのテキストを参照します。2番目の引数(url)はMatcherタイプであり、HTMLアンカータグのURLを参照します。TextViewにのみ適用されます。テキストビューのコンテンツで使用可能なすべてのHTMLアンカータグを収集し、最初の引数(リンクテキスト)と2番目の引数(url)に一致するアンカータグを見つけて、最後に対応するURLを開くビューアクションを返します。内容が-であるテキストビューを考えてみましょう。

<a href="http://www.google.com/">copyright</a>

次に、以下のテストケースを使用して、リンクを開いてテストできます。

onView(withId(R.id.text_view)).perform(openLink(is("copyright"),
   is(Uri.parse("http://www.google.com/"))))

ここで、openLinkはテキストビューのコンテンツを取得し、著作権をテキストとして、www.google.comをURLとして持つリンクを見つけ、そのURLをブラウザで開きます。

openLinkWithText()

openLinkWithText()には1つの引数があり、** String *型またはMatcher型のいずれかです。これは、openLink *メソッドへの単なるショートカットです。

onView(withId(R.id.text_view)).perform(openLinkWithText("copyright"))

openLinkWithUri()

openLinkWithUri()には1つの引数があり、String型またはMatcher型のいずれかです。それは単にショートにカットオープンリンク*方法。

onView(withId(R.id.text_view)).perform(openLinkWithUri("http://www.google.com/"))

pressImeActionButton()

pressImeActionButton()には引数がなく、ビューアクションを返します。これにより、android:imeOptions構成で設定されたアクションが実行されます。たとえば、android:imeOptionsがactionNextと等しい場合、これによりカーソルが画面内で次に可能なEditTextビューに移動します。

onView(withId(R.id.text_view)).perform(pressImeActionButton())

scrollTo()

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()

swipeRight()には引数がなく、ビューアクションを返します。これにより、画面上で右スワイプアクションが実行されます。

onView(withId(R.id.root)).perform(swipeRight())

左スワイプ()

swipeLeft()には引数がなく、ビューアクションを返します。これにより、画面上で左スワイプアクションが実行されます。

onView(withId(R.id.root)).perform(swipeLeft())