10
napisałem następujący pogląd dopasowywania do mojego widoku niestandardowegoopis Espresso klienta ViewMatcher Niezgodność nie pojawia się w dzienniku
public static Matcher<View> withValue(final Matcher<Long> longMatcher){
return new BoundedMatcher<View, IntegerField>(IntegerField.class) {
@Override
public void describeTo(Description description) {
description.appendText("with value : ");
longMatcher.describeTo(description);
}
@Override
public void describeMismatch(Object item, Description description) {
super.describeMismatch(item, description);
description.appendText("value=" + ((IntegerField)item).getValue());
}
@Override
protected boolean matchesSafely(IntegerField field) {
return longMatcher.matches(field.getValue());
}
};
gdy nie mecz, dziennik nie zawiera opisu niezgodności I dołączany w descibeMismatch()
funkcjonować. Czy jest coś, co przeoczyłem?
mają ten sam problem ... Jakieś tropy? –
Nie obejść problemu, ale przynajmniej znalazłem główną przyczynę: Metoda ViewAssertions.matches() nie wywołuje funkcji discribeMismatch, ponieważ wywołuje funkcję assertThat (message, actual, matcher) zamiast assertThat (actual, matcher). –
Natknąłem się na to wiele razy i w końcu zarejestrowałem żądanie funkcji, aby je zaadresować. Wybierz gwiazdkę, aby zwrócić na nią uwagę: https://code.google.com/p/android/issues/detail?id=234801 – dominicoder