Espresso TestingFramework-アサーションを表示
前に説明したように、ビューアサーションは、実際のビュー(ビューマッチャーを使用して検出)と期待されるビューの両方が同じであることを表明するために使用されます。サンプルコードは次のとおりです。
onView(withId(R.id.my_view)) .check(matches(withText("Hello")))
ここに、
onView()は、一致したビューに対応するViewInterationオブジェクトを返します。ViewInteractionは、一致したビューと対話するために使用されます。
withId(R.id.my_view)は、my_viewと等しいid属性を持つビュー(実際)と一致するビューマッチャーを返します。
withText(“ Hello”)は、Helloと等しいテキスト属性を持つビュー(期待される)と一致するビューマッチャーも返します。
checkは、ViewAssertion型の引数を受け入れ、渡されたViewAssertionオブジェクトを使用してアサーションを実行するメソッドです。
matchs(withText(“ Hello”))は、ビューアサーションを返します。real job実際のビュー(withIdを使用して検出)と期待されるビュー(withTextを使用して検出)の両方が同一であると主張すること。
ビューオブジェクトをアサートするためにエスプレッソテストフレームワークによって提供されるいくつかのメソッドを学びましょう。
存在しません()
ビューアサーションを返します。これにより、ビューマッチャーが一致するビューを見つけられなくなります。
onView(withText("Hello")) .check(doesNotExist());
ここで、テストケースは、テキストHelloのビューがないことを確認します。
マッチス()
ターゲットビューマッチャーを受け入れ、ビューアサーションを返します。これにより、ビューマッチャー(実際)が存在し、ターゲットビューマッチャーによって一致したビューと一致することが保証されます。
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に割り当て可能な子孫オブジェクトが互いにオーバーラップしないようになります。これには、ターゲットビューマッチャーを受け入れてビューアサーションを返す別のオプションがあります。これにより、ターゲットビューに一致する子孫ビューがオーバーラップしないようになります。