Espresso Testing Framework - Exibir afirmações

Conforme discutido anteriormente, a asserção de visão é usada para afirmar que tanto a visão real (encontrada usando os correspondentes de visão) quanto as visões esperadas são as mesmas. Um exemplo de código é o seguinte,

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

Aqui,

  • onView () retorna o objeto ViewInteration correspondente à visualização combinada. ViewInteraction é usado para interagir com a visualização correspondente.

  • withId (R.id.my_view) retorna um matcher de visualização que corresponderá à visualização (real) com atributos de id iguais a my_view .

  • withText (“Hello”) também retorna um matcher de visualização que corresponderá à visualização (esperada) com atributos de texto iguais a Hello .

  • check é um método que aceita um argumento do tipo ViewAssertion e faz asserção usando passado no objeto ViewAssertion .

  • corresponde (withText (“Hello”)) retorna uma asserção de visão, que fará oreal jobde afirmar que a visão real (encontrada usando withId ) e a visão esperada (encontrada usando withText ) são uma e a mesma.

Vamos aprender alguns dos métodos fornecidos pela estrutura de teste do espresso para declarar objetos de exibição.

não existe()

Retorna uma asserção de visão, o que garante que o comparador de visão não encontre nenhuma visão correspondente.

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

Aqui, o caso de teste garante que não haja visualização com o texto Hello.

partidas()

Aceita um matcher de visualização de destino e retorna uma asserção de visualização, que garante que o matcher de visualização (real) existe e corresponde à visualização correspondida pelo comparador de visualização de destino.

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

Aqui, o caso de teste garante que a visualização com id, R.id.textView_hello exista e corresponda à visualização de destino com o texto Hello World!

isBottomAlignedWith ()

Aceita um matcher de visualização de destino e retorna uma asserção de visualização, que garante que o matcher de visualização (real) existe e está alinhado na parte inferior com o matcher de visualização de destino.

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

Aqui, o caso de teste garante que a visualização com id, R.id.view exista e esteja alinhada na parte inferior com a visualização com id, R.id.target_view .

isCompletelyAbove ()

Aceita um matcher de visualização de destino e retorna uma asserção de visualização, que garante que o matcher de visualização (real) existe e está posicionado completamente acima do matcher de visualização de destino.

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

Aqui, o caso de teste garante que a visualização com id, R.id.view exista e seja posicionada completamente acima da visualização com id, R.id.target_view

isCompletelyBelow ()

Aceita um matcher de visualização de destino e retorna uma asserção de visualização, que garante que o matcher de visualização (real) existe e está posicionado completamente abaixo do matcher de visualização de destino.

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

Aqui, o caso de teste garante que a visualização com id, R.id.view exista e seja posicionada completamente abaixo da visualização com id, R.id.target_view .

isCompletelyLeftOf ()

Aceita um matcher de visão de destino e retorna uma asserção de visão, que garante que o matcher de visão (real) existe e está posicionado completamente à esquerda do matcher de visão de destino.

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

Aqui, o caso de teste garante que a visualização com id, R.id.view exista e seja posicionada completamente à esquerda da visualização com id, R.id.target_view

isCompletelyRightOf ()

Aceita um matcher de visualização de destino e retorna uma asserção de visualização, que garante que o matcher de visualização (real) existe e está posicionado completamente à direita do matcher de visualização de destino.

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

Aqui, o caso de teste garante que a visão com id, R.id.view exista e seja posicionada completamente à direita da visão com id, R.id.target_view.

isLeftAlignedWith ()

Aceita um matcher de visualização de destino e retorna uma asserção de visualização, que garante que o matcher de visualização (real) existe e é alinhado à esquerda com o matcher de visualização de destino.

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

Aqui, o caso de teste garante que a visualização com id, R.id.view exista e seja alinhada à esquerda com a visualização com id, R.id.target_view

isPartiallyAbove ()

Aceita um comparador de visualização de destino e retorna uma asserção de visualização, que garante que o comparador de visualização (real) existe e está posicionado parcialmente acima do comparador de visualização de destino.

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

Aqui, o caso de teste garante que a visualização com id, R.id.view exista e seja posicionada parcialmente acima da visualização com id, R.id.target_view

isPartiallyBelow ()

Aceita um matcher de visualização de destino e retorna uma asserção de visualização, que garante que o matcher de visualização (real) exista e seja posicionado parcialmente abaixo do matcher de visualização de destino.

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

Aqui, o caso de teste garante que a visualização com id, R.id.view exista e seja posicionada parcialmente abaixo da visualização com id, R.id.target_view .

isPartiallyLeftOf ()

Aceita um matcher de visualização de destino e retorna uma asserção de visualização, que garante que o matcher de visualização (real) existe e está posicionado parcialmente à esquerda do matcher de visualização de destino.

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

Aqui, o caso de teste garante que a visualização com id, R.id.view exista e seja posicionada parcialmente à esquerda da visualização com id, R.id.target_view .

isPartiallyRightOf ()

Aceita um matcher de visão de destino e retorna uma asserção de visão, o que garante que o matcher de visão (real) existe e está posicionado parcialmente à direita do matcher de visão de destino

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

Aqui, o caso de teste garante que a visualização com id, R.id.view exista e seja posicionada parcialmente à direita da visualização com id, R.id.target_view .

isRightAlignedWith ()

Aceita um matcher de visão de destino e retorna uma asserção de visão, que garante que o matcher de visão (real) existe e está alinhado à direita com o matcher de visão de destino.

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

Aqui, o caso de teste garante que a visão com id, R.id.view exista e esteja alinhada com a visão com id, R.id.target_view .

isTopAlignedWith ()

Aceita um matcher de visualização de destino e retorna uma asserção de visualização, que garante que o matcher de visualização (real) existe e está alinhado no topo com o matcher de visualização de destino.

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

Aqui, o caso de teste garante que a visão com id, R.id.view exista e esteja alinhada com a visão com id, R.id.target_view

noEllipsizedText ()

Retorna uma declaração de visão, que garante que a hierarquia de visão não contenha visões de texto elipsizadas ou cortadas.

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

noMultilineButtons ()

Retorna uma asserção de visão, que garante que a hierarquia de visão não contenha botões com várias linhas.

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

noOverlaps ()

Retorna uma declaração de visão, que garante que o objeto descendente atribuível a TextView ou ImageView não se sobreponha. Ele tem outra opção, que aceita um matcher de visão de destino e retorna uma asserção de visão, o que garante que a visão descendente correspondente à visão de destino não se sobreponha.