Ho trovato un ottimo tutorial di prova strumentale su YT Advanced Android Espresso. Ho preso il codice da lì con piccoli aggiustamenti ai miei bisogni.Come controllare il titolo della barra degli strumenti nel test strumentale di Android?
import static android.support.test.InstrumentationRegistry.getInstrumentation;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withChild;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withParent;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
import static org.hamcrest.core.AllOf.allOf;
...
@Test
public void checkToolbarTitle() {
String toolbarTitile = getInstrumentation().getTargetContext().getString(R.string.my_bus_stops);
onView(allOf(isAssignableFrom(TextView.class), withParent(isAssignableFrom(Toolbar.class)))).check(matches(withText(toolbarTitile)));
}
Purtroppo non funziona per me. Test fallito con:
android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: (is assignable from class: class android.widget.TextView and has parent matching: is assignable from class: class android.widget.Toolbar)
Cosa c'è di sbagliato? Come posso testarlo in altro modo?
Questo non ha funzionato per me. Era l'importazione di Grzegorz Bielanski. instanceOf non può essere risolto per me. –
Ti chiedi solo perché fai voto negativo ?! Funziona per la maggior parte dei casi (vedi quantità di voti) e il fatto che non funzioni per te non rende questa risposta errata. – denys
Come faccio a sapere che funziona per "la maggior parte dei casi". La mia esperienza è che ciò che funziona su Android cambia da versione a versione, e una risposta pertinente oggi non sarà sicuramente rilevante domani. –