Android Espresso vérifie le texte sélectionné

J'ai ce code dans mon test Espresso

onView(withId(R.id.src)) .perform(click()); onData(hasToString(startsWith("CCD"))) .perform(click()); onView(withId(R.id.src)) .check(matches(withText(containsString("CCD")))); 

Ce que j'essaie de faire, c'est de cliquer sur l'élément dans le Spinner et de vérifier s'il est bien sélectionné dans le Spinner .

  • Pourquoi les navigateurs mobiles chargent-ils complètement ma page?
  • "Code": 403 et "raison": exception "interdite" lors du téléchargement du fichier dans google plus
  • Lorsque l'application passe en arrière-plan pendant une exécution AsyncTask, que devrait-elle faire?
  • KeyCode sur Android est toujours 229
  • Définition de la taille de la boîte de dialogue par programme
  • Camera Force Closing issue dans Samsung Galaxy S3 version 4.1.1
  • Mais je reçois cette erreur:

    Android.support.test.espresso.base.DefaultFailureHandler $ AssertionFailedWithCauseError: 'avec le texte: une chaîne contenant "CCD"' ne correspond pas à la vue sélectionnée. En attente: avec le texte: une chaîne contenant "CCD" Got: "AppCompatSpinner {id = 2131558533, res-name = src, visibilité = VISIBLE, largeur = 528, height = 163, has-focus = false, has-focusable = true, Has-window-focus = true, is-clickable = true, is-enabled = true, is-focused = false, is-focusable = true, is-layout-requested = false, is-selected = false, root-is- Layout-requested = false, has-input-connection = false, x = 0.0, y = 0.0, child-count = 1} "

  • Ajout d'une base de données / backend aux applications Android
  • Erreur: Cause android.compileSdkVersion est absent
  • OutOfMemoryError à AbstractStringBuilder enlargeBuffer
  • Modules ndk ndk Android
  • Importante utilisation de la mémoire dans les notifications
  • Comment souligner un texte dans android xml?
  • 3 Solutions collect form web for “Android Espresso vérifie le texte sélectionné”

    Remplacez withText() avec withSpinnerText()

     onView(withId(spinnerId)).perform(click()); onData(allOf(is(instanceOf(String.class)), is(selectionText))).perform(click()); onView(withId(spinnerId)).check(matches(withSpinnerText(containsString(selectionText)))); 

    Référence: https://code.google.com/p/android-test-kit/issues/detail?id=85

    Pour un adaptateur personnalisé, je t'ai créé un matcher personnalisé:

      onView(withId(R.id.spinner)).perform(click()); onData(allOf(is(instanceOf(YourCustomClass.class)), withMyValue("Open"))).perform(click()); public static <T> Matcher<T> withMyValue(final String name) { return new BaseMatcher<T>() { @Override public boolean matches(Object item) { return item.toString().equals(name); } @Override public void describeTo(Description description) { } }; } 

    Ensuite, vous devez remplacer la méthode toString () sur votre classe personnalisée.

    Une solution vraiment simple qui a fonctionné pour moi ….. sans utiliser matcher Pour CustomSpinner

    OnView (withId (R.id.custom_spinner)). Effectuer (cliquez ()); OnData (anything ()). AtPosition (1) .perform (clic ()); OnView (withId (R.id.custom_spinner)). Check (matches (avecSpinnerText (containsString ("yourstring"))));

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.