Prüfung background-color espresso-Android
Ist es möglich zu überprüfen, ob die hintergrund-Farbe entspricht einer bestimmten Farbe mit espresso?
Machte ich eine custom matcher, ähnlich zu dem, was @Irfan vorgeschlagen, danke!
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]);
}
};
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin nicht sicher, aber wir abrufen können, die Farbe einiger Elemente wie button und text Ansichten `
und Sie können versuchen, wie diese
dann
Hoffe, dies wird Ihnen den Einstieg.
In meinen tests habe ich folgende matcher für die Prüfung
EditText
Farbe:Und Verwendung ist :
hasBackground
Methode scheitern von Android-28?Hier ist, was ich in meinen tests
und rufen Sie es als
onView(withId(R. id.price_value)).check(entspricht(withTextColor(R. color.schwarz)));
Einen anderen Ansatz, um zu überprüfen TextView text die Farbe könnte über
hasTextColor(int color)
wie es kommt direkt aus Espresso.Sich bewusst sein, dass diese Methode ist derzeit in der Beta für Espresso 3.0.1
Ist es möglich, den test auf Farbe. Ich schuf eine Methode zum testen auf
TextView
hintergrund-Farbe als unten. Beachten Sie auch, dass die leite Farbe Ressource.Erstelle ich
ColorDrawable
Objekt aus Farbe Ressource und Farbe aus dem Objekt.Vergleich der Farbe von Ressourcen, ohne die
ColorDrawable
nicht passieren. Hoffe, dies hilft Ihnen.