Java 我如何使用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

我正在使用JUnit和Hamcrest编写一个单元测试。我一直在使用以下方法比较双值:

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.closeTo
closeTo
不需要
wrapper这是正确的,它不需要它。这是为了使代码更具可读性。
import static org.hamcrest.Matchers.closeTo;
import static org.hamcrest.Matchers.is;