Espresso - Affirmation d'un TextView avec des données chargées asynchrones

Je suis en train d'écrire un test de l'INTERFACE utilisateur avec Google Espresso pour Android et je suis bloqué sur la façon de faire valoir un TextView texte, dont le contenu est chargé de manière asynchrone à partir d'un service web. Mon code actuel est:

public class MyTest extends BaseTestCase<MyActivity>{
    public void setUp() throws Exception {
        //(1) Tell the activity to load 'element-to-be-loaded' from webservice
        this.setActivityIntent(new Intent(Intent.ACTION_VIEW, Uri.parse("data://data/element-to-be-loaded")));
        getActivity();

        super.setUp();
    }

    public void testClickOnReviews(){
        //(2) Check the element is loaded and its name is displayed
        Espresso
            .onView(ViewMatchers.withId(R.id.element_name))
            .check(ViewAssertions.matches(ViewMatchers.withText("My Name")));

        //(3) Click on the details box
        Espresso
            .onView(ViewMatchers.withId(R.id.details_box))
            .check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
            .perform(ViewActions.click());

        //(4) Wait for the details screen to open
        Espresso
            .onView(ViewMatchers.withId(R.id.review_box));

        //Go back to element screen
        Espresso.pressBack();
    }
}

(1), je vous informe de mon activité à la charge d'un élément de la webservice. (2), je suis en attente pour le point de vue en affirmant son contenu. C'est la partie que le test échoue, car il s'exécute avant le webservice réponses de l'application.

Comment puis-je savoir Espresso à attendre pour une pièce en particulier de données apparaissent sur l'écran? Ou devrais-je penser à une façon différente d'écrire un tel test?

source d'informationauteur Bolhoso | 2014-01-08