Mockito验证OptionalDouble

时间:2018-04-18 16:10:59

标签: java mockito hamcrest

我有一个以OptionalDouble作为输入类型调用的方法,我想验证它是否使用正确的值调用。但是由于舍入错误等原因我无法检查完全匹配。

对于正常的双人我正在使用它:

  verify(observer, times(1)).accept(doubleThat(closeTo(x * (1 - y) / z, 0.00000001)));

但我无法通过任何简单的方法为OptionalDouble做同样的事情。我需要在这里编写自己的处理程序吗?

如果我确实需要一个新的处理程序,任何人都可以指出我可以构建的示例吗?

1 个答案:

答案 0 :(得分:2)

One option would be to use ArgumentCaptor I believe. eg below

final ArgumentCaptor<OptionalDouble> captor = ArgumentCaptor.forClass(OptionalDouble.class);

    ........
    .............
    verify(observer).accept(captor.capture());

    assertEquals(expected.getAsDouble(), captor.getValue().getAsDouble(), delta);