我有一个以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);

07-24 21:33