android - tesis - youtube como plataforma de la sociedad del espectaculo
Espresso de Android: afirmar texto en pantalla contra cadena en recursos (1)
Utilice esta función:
private String getResourceString(int id) {
Context targetContext = InstrumentationRegistry.getTargetContext();
return targetContext.getResources().getString(id);
}
Solo tienes que llamarlo con el id de la cadena y realizar tu acción:
String myTextFromResources = getResourceString(R.string.main_ent_mil_new_mileage);
onView(allOf(withId(R.id.my_text_on_screen), withText(myTextFromResources))
.check(matches(isDisplayed()));
* EDITAR para la nueva versión de espresso:
Con la nueva versión de Espresso, debería poder llamar directamente el recurso de cadena con un ViewMatcher . Así que primero, recomiendo probar directamente esta importación.
import static android.support.test.espresso.matcher.ViewMatchers.withText;
Y luego en el código:
withText(R.string.my_string_resource)
Tengo el siguiente texto en el archivo de recursos strings.xml:
<string name="txt_to_assert">My Text</string>
Normalmente en un código de aplicación, para usar este texto y mostrarlo en la pantalla, estoy haciendo lo siguiente:
getString(R.string.main_ent_mil_new_mileage);
En este momento, estoy tratando de usar este recurso de cadena en una prueba de interfaz de usuario escrita con Espresso. Estoy pensando en hacer algo así:
String myTextFromResources = getString(R.string.main_ent_mil_new_mileage);
onView(allOf(withId(R.id.my_text_on_screen), withText(myTextFromResources))
.check(matches(isDisplayed()));
Sin embargo, el método getString(...)
no se puede utilizar aquí.
¿Hay alguna manera de obtener un texto del archivo de recursos strings.xml y usarlo en una prueba escrita con Espresso?