Espresso-testing-view-assertions
エスプレッソテストフレームワーク-アサーションの表示
前述のように、ビューアサーションは、実際のビュー(ビューマッチャーを使用して検出)と予想されるビューの両方が同じであることをアサートするために使用されます。 サンプルコードは次のとおりです。
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に割り当て可能な子孫オブジェクトが互いにオーバーラップしないことが保証されます。 ターゲットビューマッチャーを受け入れ、ビューアサーションを返す別のオプションがあります。これにより、ターゲットビューに一致する子孫ビューが重複しないようになります。