gpt4 book ai didi

java - 覆盖 Mockito toString 测试输出

转载 作者:搜寻专家 更新时间:2023-10-31 20:02:24 25 4
gpt4 key购买 nike

我已经编写了一个自定义的 Hamcrest Matcher<Double> 来与 Mockito.doubleThat 一起使用。

我想“覆盖 toString()”方法,可以这么说,这样如果出现故障,错误会更详细。这是 JUnit 故障跟踪:

Argument(s) are different! Wanted:
dependedOnComponent.method(
<Double matcher>
);
-> at my.domain.TestClass.testMethod(TestClass.java:123)
Actual invocation has different arguments:
dependedOnComponent.method(
123.45,
);
-> at my.domain.SystemUnderTest.callingMethod(SystemUnderTest.java:456)

如您所见,它打印了 <Double matcher> 。是否可以覆盖该消息?相反,我想看看,例如:

Argument(s) are different! Wanted:
dependedOnComponent.method(
120 < matcher < 121
);

但是我的匹配器类的不同实例化可能是:

Argument(s) are different! Wanted:
dependedOnComponent.method(
1 < matcher < 200
);

我不需要知道如何编写代码来生成数字或语法,我只需要知道把它放在哪里。

最佳答案

所以我在做一些傻事;我正在阅读 Matcher 的 Javadoc当我真的应该查看 ArgumentMatcher 的 Javadoc 时.

一旦我意识到自己的错误,就很容易了;只需覆盖该接口(interface)中定义的 describeTo 方法,例如

@Override
public void describeTo(Description description) {
description.appendText(String.valueOf(expected));
description.appendText(" ± ");
description.appendText(String.valueOf(delta));
}

关于java - 覆盖 Mockito toString 测试输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23831283/

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