Acciones sobre listados

Acciones sobre listados

CodelyTV

En esta lección hablamos de como realizar acciones sobre listados. Esto es muy importante ya que la mayoría de las aplicaciones que manejamos son una sucesión de listados con información.

Para hacer esto nos vamos apoyar en unas clases que están en el proyecto, son RecyclerViewInteraction RecyclerItemViewAssertion.

Con esto lo que vamos a hacer es escribir un tests que compruebe que se muestren los items:

@Test public void showsSuperHeroesNameWhenThereAreSomeSuperHeroes() { final List<SuperHero> superHeroes = givenSomeSuperHeroes(ANY_NUMBER);

startActivity(); RecyclerViewInteraction.<SuperHero>onRecyclerView(withId(R.id.recycler_view)).withItems( superHeroes .check(new RecyclerViewInteraction.ItemViewAssertion<SuperHero>() { @Override public void check(SuperHero superHero, View view, NoMatchingViewException exception) { matches(hasDescendant(withText(superHero.getName()))).check(view, exception); } });}

view raw

course6.java hosted with ❤ by GitHub

En este caso el código de comprobación es un poco distinto a lo que hemos visto hasta ahora pero como podéis ver es bastante sencillo. El RecyclerViewInteraction va a invocar el método check por cada elemento que le pasamos en withItems, recordar que este withItems no tiene porque ser el mismo modelo que recibe el adpater, si no que va a coincidir con el elemento que recibe como primer argumento el método check.

También comentar que hacemos uso de la provisión para saber que elementos son los que esperamos mostrar. Esto es muy importante porque es lo que nos va a hacer tener control sobre los elementos a mostrar.

Por ultimo recalcar la idea del matches, que mira sobre la vista activa, en este caso es la row de la lista, por eso es importante recordar que debemos usar elementos como hasDescendant para encontrar hijos en la jerarquía que cumplan con las condiciones dadas.

Ya podéis escribir la mayoría de los tests de la Kata, empezar por los tests que comprueban si aparece el icono de avenger en el listado. Fácil no?

Os recomiendo que le echéis un ojo a barista ya que nos va facilitar mucho el uso para realizar acciones o comprobaciones avanzadas. https://github.com/SchibstedSpain/Barista


Report Page