Espresso-testing-view-assertions

提供:Dev Guides
移動先:案内検索

エスプレッソテストフレームワーク-アサーションの表示

前述のように、ビューアサーションは、実際のビュー(ビューマッチャーを使用して検出)と予想されるビューの両方が同じであることをアサートするために使用されます。 サンプルコードは次のとおりです。

onView(withId(R.id.my_view)) .check(matches(withText("Hello")))

ここに、

  • _onView()_は、一致したビューに対応する_ViewInteration_オブジェクトを返します。 _ViewInteraction_は、一致したビューと対話するために使用されます。
  • _withId(R.id.my_view)_は、_id_属性が_my_view_と等しいビュー(実際)と一致するビューマッチャーを返します。
  • _withText(“ Hello”)_は、_Hello_に等しいテキスト属性を持つビュー(予想される)と一致するビューマッチャーも返します。
  • _check_は、_ViewAssertion_型の引数を受け入れ、渡された_ViewAssertion_オブジェクトを使用してアサーションを行うメソッドです。
  • _matches(withText(“ Hello”))_は、ビューアサーションを返します。これは、実際のビュー(_withId_を使用して検出された)と期待されるビュー(_withText_を使用して検出された)が同一であることをアサートする*実際の仕事*を実行します

ビューオブジェクトをアサートするためのエスプレッソテストフレームワークによって提供されるメソッドのいくつかを学びましょう。

存在しない()

ビューアサーションを返します。これにより、ビューマッチャーが一致するビューを見つけられないことが保証されます。

onView(withText("Hello")) .check(doesNotExist());

ここで、テストケースは、テキストHelloのあるビューがないことを確認します。

matches()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーによって一致したビューと一致することが保証されます。

onView(withId(R.id.textView_hello)) .check(matches(withText("Hello World!")));

ここで、テストケースは、ID R.id.textView_helloを持つビューが存在し、テキストHello World!を持つターゲットビューと一致することを確認します。

isBottomAlignedWith()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーと下に揃えられます。

onView(withId(R.id.view)) .check(isBottomAlignedWith(withId(R.id.target_view)))

ここで、テストケースは、ID _R.id.view_を持つビューが存在し、ID _R.id.target_view_を持つビューと下揃えであることを確認します。

isCompletelyAbove()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーの上に完全に配置されることが保証されます。

onView(withId(R.id.view)) .check(isCompletelyAbove(withId(R.id.target_view)))

ここで、テストケースは、IDを持つビューR.id.viewが存在し、IDを持つビュー_R.id.target_view_の上に完全に配置されることを確認します。

isCompletelyBelow()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーの下に完全に配置されることが保証されます。

onView(withId(R.id.view)) .check(isCompletelyBelow(withId(R.id.target_view)))

ここでは、テストケースは、ID _R.id.view_を持つビューが存在し、ID _R.id.target_view_を持つビューの下に完全に配置されていることを確認します。

isCompletelyLeftOf()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーの完全に左に配置されます。

onView(withId(R.id.view)) .check(isCompletelyLeftOf(withId(R.id.target_view)))

ここで、テストケースは、ID _R.id.view_を持つビューが存在し、ID _R.id.target_view_を持つビューの完全に左に配置されていることを確認します

isCompletelyRightOf()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーの完全に右に配置されます。

onView(withId(R.id.view)) .check(isCompletelyRightOf(withId(R.id.target_view)))

ここで、テストケースは、ID R.id.viewを持つビューが存在し、ID R.id.target_viewを持つビューの完全に右に配置されることを確認します。

isLeftAlignedWith()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーと左揃えになっていることが保証されます。

onView(withId(R.id.view)) .check(isLeftAlignedWith(withId(R.id.target_view)))

ここで、テストケースは、ID _R.id.view_を持つビューが存在し、ID _R.id.target_view_を持つビューと左揃えであることを確認します

isPartiallyAbove()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーの上に部分的に配置されます。

onView(withId(R.id.view)) .check(isPartiallyAbove(withId(R.id.target_view)))

ここで、テストケースは、ID _R.id.view_を持つビューが存在し、ID _R.id.target_view_を持つビューの上に部分的に配置されていることを確認します

isPartiallyBelow()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーの下に部分的に配置されます。

onView(withId(R.id.view)) .check(isPartiallyBelow(withId(R.id.target_view)))

ここで、テストケースは、ID _R.id.view_を持つビューが存在し、ID _R.id.target_view_を持つビューの下に部分的に配置されていることを確認します。

isPartiallyLeftOf()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーの部分的に左に配置されます。

onView(withId(R.id.view)) .check(isPartiallyLeftOf(withId(R.id.target_view)))

ここで、テストケースでは、ID _R.id.view_を持つビューが存在し、ID _R.id.target_view_を持つビューの部分的に左に配置されていることを確認します。

isPartiallyRightOf()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーの部分的に右側に配置されます。

onView(withId(R.id.view)) .check(isPartiallyRightOf(withId(R.id.target_view)))

ここで、テストケースは、ID _R.id.view_を持つビューが存在し、ID _R.id.target_view_を持つビューの部分的に右側に配置されることを確認します。

isRightAlignedWith()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーと右揃えになります。

onView(withId(R.id.view)) .check(isRightAlignedWith(withId(R.id.target_view)))

ここで、テストケースは、ID _R.id.view_を持つビューが存在し、ID _R.id.target_view_を持つビューと右揃えであることを確認します。

isTopAlignedWith()

ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーと上揃えになっていることが保証されます。

onView(withId(R.id.view)) .check(isTopAlignedWith(withId(R.id.target_view)))

ここで、テストケースは、ID _R.id.view_を持つビューが存在し、ID _R.id.target_view_を持つビューの上部に位置合わせされていることを確認します。

noEllipsizedText()

ビューのアサーションを返します。これにより、ビュー階層に省略されたテキストビューや切り取られたテキストビューが含まれなくなります。

onView(withId(R.id.view)) .check(noEllipsizedText());

noMultilineButtons()

ビューのアサーションを返します。これにより、ビュー階層に複数行のボタンが含まれないことが保証されます。

onView(withId(R.id.view)) .check(noMultilineButtons());

noOverlaps()

ビューアサーションを返します。これにより、TextViewまたはImageViewに割り当て可能な子孫オブジェクトが互いにオーバーラップしないことが保証されます。 ターゲットビューマッチャーを受け入れ、ビューアサーションを返す別のオプションがあります。これにより、ターゲットビューに一致する子孫ビューが重複しないようになります。