Prueba de color de fondo espresso Android

¿Es posible comprobar si el color de fondo coincide con un determinado color con espresso?

Hice un matcher personalizado, similar a lo que @Irfan sugirió, gracias!

public static Matcher<Object> backgroundShouldHaveColor(int expectedColor) { return buttondShouldHaveBackgroundColor(equalTo(expectedColor)); } private static Matcher<Object> buttonShouldHaveBackgroundColor(final Matcher<Integer> expectedObject) { final int[] color = new int[1]; return new BoundedMatcher<Object, Button>( Button.class) { @Override public boolean matchesSafely(final Button actualObject) { color[0] =((ColorDrawable) actualObject.getBackground()).getColor(); if( expectedObject.matches(color[0])) { return true; } else { return false; } } @Override public void describeTo(final Description description) { // Should be improved! description.appendText("Color did not match "+color[0]); } }; } 

No estoy seguro acerca de eso, pero podemos recuperar el color de algunos elementos como el botón y el texto vistas `

 Button button = (Button) findViewById(R.id.my_button); Drawable buttonBackground = button.getBackground(); 

Y puedes probar de esta manera

 ColorDrawable b_color = (ColorDrawable) button.getBackground(); 

y entonces

 int color = b_color.getColor(); if (colorID == R.color.green) { log("color is green"); } 

Espero que esto te ayudará a empezar.

En mis pruebas tengo el siguiente matcher para probar el color de EditText :

 public static Matcher<View> withTextColor(final int color) { Checks.checkNotNull(color); return new BoundedMatcher<View, EditText>(EditText.class) { @Override public boolean matchesSafely(EditText warning) { return color == warning.getCurrentTextColor(); } @Override public void describeTo(Description description) { description.appendText("with text color: "); } }; } 

Y el uso es:

 onView(withId(R.id.password_edittext)).check(matches(withTextColor(Color.RED))); 

Teniendo en cuenta que tiene la lista de colores, cree una matriz de ellos:

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="black">#000000</color> <color name="white">#FFFFFF</color> <array name="colors"> <item>@color/black</item> <item>@color/white</item> </array> </resources> 

A continuación, obtendrá esta matriz y el bucle en él:

 int[] colors = context.getResources().getIntArray(R.array.colors); for (int i = 0; i < colors.length; i++) { // Compare your color with 'colors[i]' } 
  • ¿Es posible utilizar Butterknife para inyectar vistas en las clases de prueba espresso en android?
  • Pruebas de Android - Cómo agregar registros de Espresso
  • Establecer la orientación del emulador / dispositivo mediante programación en la prueba de instrumentación
  • Prueba de Espresso de Android escamosa - Snackbar
  • Espresso: ¿Cómo puedo probar que la actividad finalizó con el resultado RESULT_OK
  • NullPointer Excepción al usar Espresso
  • Snackbar y Espresso fallando a veces
  • ¿Hay alguna manera de saber si se ha iniciado una actividad con Espresso?
  • Cómo usar Espresso para probar el elemento en el adaptador en una posición específica
  • Prueba de centrifugadoras dinámicas espresso
  • Automatización de Android APK con Espresso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.