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.