J'écris mes cas de test pour mon application mais j'ai rencontré quelques problèmes mineurs. Beaucoup de mes cas de test ont des appels SystemClock.Sleep
, afin que la vue puisse charger toutes les données et les afficher à l'écran. Cependant, le nombre de dortoirs pour ce faire a augmenté de plus en plus, ce qui a prolongé la durée de ces tests.Alternative pour SystemClock.sleep dans Andriod Espresso
Voici un exemple d'un de ces tests
@Test
public void testSearch() {
ExtensionForExpresso.signUp();
SystemClock.sleep(17000);
onView(withId(R.id.menu_offer_search)).check(matches(isDisplayed())).perform(click());
SystemClock.sleep(5000);
onView(withId(R.id.menu_search)).check(matches(isDisplayed())).perform(typeText("Pizza"));
SystemClock.sleep(17000);
onView(withId(R.id.searchSectionSeeAllButton)).check(matches(isDisplayed())).perform(click());
SystemClock.sleep(15000);
onView(withId(R.id.searchResultsRecyclerView)).check(matches(isDisplayed())).perform(RecyclerViewActions.actionOnItemAtPosition(1, click()));
}
Y at-il une alternative au sommeil qui attendra pour une vue apparaisse? Ou y a-t-il des méthodes ou des fonctions que je peux ajouter pour réduire le nombre d'appels SystemClock.sleep
?
Un grand merci :)