0

Je veux savoir comment régler un article dans une centrifugeuse dans un test d'expresso.Set Spinner item with expresso

onView(withId(R.id.spinner_gender)).perform(click()); 
onData(allOf(is(instanceOf(String.class)))).atPosition(0).perform(click()); 

Ce code ne fonctionne pas au-dessus:/

+0

Cocher cette réponse: http://stackoverflow.com/questions/37615658/espresso-why-dont-spinners-close-after-selection/37683354#37683354 Son bas a voté, mais cela a vraiment fonctionné pour moi – jeprubio

Répondre

1

Votre extrait de code semble correct, donc il peut y avoir un problème avec une autre partie de votre classe de test? Obtenez-vous une exception ou une pile-trace avec laquelle vous pouvez mettre à jour votre question? Vérifiez également l'espresso documentation pour un peu plus d'explications.

Voir petit exemple de code de la façon dont vous pouvez sélectionner une option spinner par le texte ou sa position.

@RunWith(AndroidJUnit4.class) 
public class BasicEspressoTest { 
    @Rule 
    public ActivityTestRule<MainActivity> testRule = new ActivityTestRule<>(MainActivity.class); 

    @Test 
    public void selectBySpinnerPosition() throws Exception { 
     onView(withId(R.id.spinner)).perform(click()); 
     onData(allOf(is(instanceOf(String.class)))).atPosition(0).perform(click()); 
    } 

    @Test 
    public void selectBySpinnerText() throws Exception { 
     onView(withId(R.id.spinner)).perform(click()); 
     onData(allOf(is(instanceOf(String.class)), is("spinner's text"))).perform(click()); 
    } 
}