我写了一个自定义匹配器来比较我的对象。除了describeMismatchSafely方法之外,它都有效。我一直在简单地说话,直到我得到这个:
public static TypeSafeMatcher<IMyObj > equalTo(final IMyObj expected) {
return new TypeSafeMatcher<IMyObj >() {
@Override
public void describeTo(final Description description) {
description.appendText("this value");
}
@Override
public void describeMismatchSafely(final IMyObj myObj, final Description mismatchDescription) {
mismatchDescription.appendText(" the wrong value");
}
@Override
protected boolean matchesSafely(IMyObj actual) {
return false;
}
}
}
方法describeTo工作正常,但describeMismatchSafely总是打印myObj.toString()而不是我想要的消息:
java.lang.AssertionError: 预期:这个值 得到了:
我用谷歌搜索自定义匹配器实现,似乎每个人都覆盖了describeMismatchSafely方法,它对他们来说效果很好。有什么理由我不应该工作吗?