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に割り当て可能な子孫オブジェクトが互いにオーバーラップしないようになります。これには、ターゲットビューマッチャーを受け入れてビューアサーションを返す別のオプションがあります。これにより、ターゲットビューに一致する子孫ビューがオーバーラップしないようになります。