Java 我如何使用JUnit和Hamcrest比较双打?
我正在使用JUnit和Hamcrest编写一个单元测试。我一直在使用以下方法比较双值:Java 我如何使用JUnit和Hamcrest比较双打?,java,junit,hamcrest,Java,Junit,Hamcrest,我正在使用JUnit和Hamcrest编写一个单元测试。我一直在使用以下方法比较双值: assertThat(result, is(0.5)); 但是,我现在需要比较计算值,我不想与完整的双精度值进行比较。相反,我想比较一下亲密度 我发现了一个名为IsCloseTo的类,但我不确定如何在资产中使用它,我无法在网上找到任何示例 执行以下操作的正确语法是什么 // I can't do this as I need to know what methods/classes whatever I s
assertThat(result, is(0.5));
但是,我现在需要比较计算值,我不想与完整的双精度值进行比较。相反,我想比较一下亲密度
我发现了一个名为IsCloseTo
的类,但我不确定如何在资产中使用它,我无法在网上找到任何示例
执行以下操作的正确语法是什么
// I can't do this as I need to know what methods/classes whatever I should be using
// isCloseTo doesn't exist.
assertThat(result, isCloseTo(0.5, 0.1));
刚刚算出,is
实际上返回了一个is
对象,所以我需要做的就是:
assertThat(result, new IsCloseTo(0.5, 0.1));
nickb的回答更好。你应该可以打电话。对于静态导入,它看起来像:
assertThat(result, closeTo(0.5, 0.1));
如果您使用
assertThat(actual, is(closeTo(expected, delta)));
与
对于正在搜索它的用户,完整的静态导入是:import static org.hamcrest.Matchers.closeTocloseTo
不需要是
wrapper这是正确的,它不需要它。这是为了使代码更具可读性。
import static org.hamcrest.Matchers.closeTo;
import static org.hamcrest.Matchers.is;