2017-04-21 3 views
1

J'essaie d'écrire un test Expresso sur Android pour valider le contenu de TextView. Quand je lis le texte à partir de ressources comme ci-dessous cela fonctionneEspresso - Valider TextView contents Android

@Test 
    public void changeText_newActivity() { 
     onView(withId(R.id.mainContent)).check(matches(withText("Hello World!"))); 
} 

Ce qui précède est le test en utilisant espresso Ci-dessous le code sur l'activité android où il travaille

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/mainContent" 
    android:text="@string/hello_world" 
    /> 

Mais Quand je remplace le texte utiliser du texte codé en dur au lieu de référencer les ressources, le test échoue et obtenir l'erreur impossible de trouver la vue dans la hiérarchie de vue

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/mainContent" 
    android:text="Hello world!" 
    /> 

Ci-dessous l'erreur lorsque je lance le test

android.support.test.espresso.NoMatchingViewException: Aucune vue dans la hiérarchie trouvée correspondante: avec le texte: est "Bonjour tout le monde!"

Apprécié votre aide à l'avance.

Répondre

2
Code "Hello world!" 
      ^
Test "Hello World!" 

Vous voyez la différence? W et w ne sont pas les mêmes.

Espresso ne trouve pas une telle vue, car il n'y en a pas.

0

Utilisez le code ci-dessous

onView(withId(R.id.mainContent)).check(matches(withText("Hello world!"))); 

Dans certains cas, eqaulIgnoreCase également une meilleure option.