gpt4 book ai didi

java - Hamcrest describeMismatchSafely 总是在我的实现中打印 Object.toString()

转载 作者:搜寻专家 更新时间:2023-11-01 03:51:09 25 4
gpt4 key购买 nike

我写了一个自定义匹配器来比较我的对象。除 describeMismatchSafely 方法外,一切正常。我一直在简单地 fing 和 simplyfing,直到我得到这个:

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 方法,并且它对他们来说工作得很好。有没有我的不工作的原因?

最佳答案

如果您使用的是 JUnit 的 org.junit.Assert#assertThat,请升级到 JUnit 4.11 以获取 a bug fix .

关于java - Hamcrest describeMismatchSafely 总是在我的实现中打印 Object.toString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27617301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com