我正在使用JUnit和Hamcrest编写单元测试。我一直在使用以下方法比较双值:
assertThat(result, is(0.5));
但是,我现在需要比较计算值,并且我不想与完整的双倍值进行比较。相反,我想比较接近。
我发现了一个名为IsCloseTo
的课程,但我不确定如何在assertThat
中使用它,我无法在线找到任何示例。
执行以下操作的正确语法是什么?
// 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));
答案 0 :(得分:18)
您应该可以致电Matchers.closeTo(double, double)
。使用静态导入,它看起来像:
assertThat(result, closeTo(0.5, 0.1));
答案 1 :(得分:1)
如果使用,可以使阅读效果更好
assertThat(actual, is(closeTo(expected, delta)));
使用
import static org.hamcrest.Matchers.closeTo;
import static org.hamcrest.Matchers.is;
答案 2 :(得分:0)
刚刚完成,is
实际上返回了一个Is
对象,所以我需要做的就是:
assertThat(result, new IsCloseTo(0.5, 0.1));
但是来自nickb的答案更好。