我有一个以OptionalDouble
作为输入类型被调用的方法,我想验证它是否以正确的值被调用。但是由于舍入错误等原因,我无法检查是否完全匹配。
对于普通的双人间,我正在使用:
verify(observer, times(1)).accept(doubleThat(closeTo(x * (1 - y) / z, 0.00000001)));
但是我无法找到任何简单的方法来对
OptionalDouble
执行相同操作。我需要在这里编写自己的处理程序吗?如果确实需要新的处理程序,谁能指出我可以创建的示例吗?
最佳答案
一种选择是使用我相信的ArgumentCaptor。例如下面
final ArgumentCaptor<OptionalDouble> captor = ArgumentCaptor.forClass(OptionalDouble.class);
........
.............
verify(observer).accept(captor.capture());
assertEquals(expected.getAsDouble(), captor.getValue().getAsDouble(), delta);