【发布时间】:2015-12-10 15:33:36
【问题描述】:
我为我的自定义视图编写了以下视图匹配器
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());
}
};
当匹配失败时,日志不包含我在descibeMismatch() 函数中附加的不匹配描述。有什么我错过的吗?
【问题讨论】:
-
有同样的问题...任何线索?
-
没有解决方法,但至少我找到了根本原因: ViewAssertions.matches() 方法没有调用 disscribeMismatch 因为它调用的是 assertThat(message, actual, matcher) 而不是 assertThat(实际,匹配器)。
-
我已经多次遇到这个问题,最后记录了一个功能请求来解决它。请star关注一下:code.google.com/p/android/issues/detail?id=234801
标签: android unit-testing automated-tests android-espresso