ho scritto il seguente vista matcher per la mia vista personalizzatadescrizione Espresso personalizzato ViewMatcher Mancata corrispondenza che non appare nel log
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());
}
};
quando la partita non riesce, il registro non contiene la descrizione non corrispondente I allegata al descibeMismatch()
funzione. C'è qualcosa che mi è mancato?
hanno lo stesso problema ... qualche pista? –
Non ho una soluzione alternativa, ma almeno ho trovato la causa principale: il metodo ViewAssertions.matches() non richiama discribeMismatch poiché chiama assertThat (message, actual, matcher) invece di assertThat (actual, matcher). –
Ho incontrato più volte e alla fine ho registrato una richiesta di funzionalità per ottenerlo. Si prega di star per ottenere un po 'di attenzione su di esso: https://code.google.com/p/android/issues/detail?id=234801 – dominicoder