如何使用JUnit和Hamcrest比较双打?

2022-09-02 20:08:23

我正在使用JUnit和Hamcrest编写单元测试。我一直在比较双精度值:

assertThat(result, is(0.5));

但是,我现在需要比较计算值,我不想与完整的双精度值进行比较。相反,我想比较亲密度。

我发现了一个名为的类,但我不确定如何在一个中使用它,我无法在网上找到任何示例。IsCloseToassertThat

执行类似操作的正确语法是什么?

// 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)); 

答案 1

你应该能够调用 Matchers.closeTo(double, double)。。使用静态导入时,它看起来像这样:

assertThat(result, closeTo(0.5, 0.1));

答案 2

如果您使用,则可以使此阅读效果更好

assertThat(actual, is(closeTo(expected, delta)));

import static org.hamcrest.Matchers.closeTo;
import static org.hamcrest.Matchers.is;

推荐