【发布时间】:2013-05-02 10:16:44
【问题描述】:
我有一个名为 method1 的方法,它接受一个在 myManager 上调用的 double 我正在传入这个 65.888 * 60。当我尝试验证这一点时,我遇到了浮点问题。验证失败。它预计 3953.28 但 3953.280029296875
verify(myManager, times(1)).method1(65.888 * 60d);
无论如何我可以让这个验证对浮点检查进行模糊检查。就像你对 assertEquals 所做的一样,你在最后输入一个增量。
谢谢
【问题讨论】:
-
不确定,但正如 api 中所述,verify 不会检查结果。验证只做:验证某些行为发生过一次。那么您要比较实际值和预期值的代码在哪里?
-
进行比较的是mockito。它正在验证该方法是用 x 调用的,但它正在接收 y(由于浮点问题)。验证在 mockito 代码中的某处完成
-
你能提供整个测试用例吗?因为,通常有很强的区别。您断言一个值(测试状态)并验证调用是否发生(测试交互)。你也可以写
verify(myManager, times(1)).method1(anyDouble());
标签: java unit-testing mockito