Java Mockito验证选项Double
我有一个被调用的方法,它的输入类型是Java Mockito验证选项Double,java,mockito,hamcrest,Java,Mockito,Hamcrest,我有一个被调用的方法,它的输入类型是optionalduble,我想验证它是用正确的值调用的。但是,由于舍入错误等原因,我无法检查精确匹配 对于普通双人,我使用的是: verify(observer, times(1)).accept(doubleThat(closeTo(x * (1 - y) / z, 0.00000001))); 但是我无法为OptionalDouble找到任何简单的方法。我需要在这里编写自己的处理程序吗 如果我真的需要一个新的处理程序,有人能告诉我一个我可以从中构建
optionalduble
,我想验证它是用正确的值调用的。但是,由于舍入错误等原因,我无法检查精确匹配
对于普通双人,我使用的是:
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);
final ArgumentCaptor captor=ArgumentCaptor.forClass(可选double.class);
........
.............
验证(observer.accept)(captor.capture());
assertEquals(应为.getAsDouble(),captor.getValue().getAsDouble(),delta);
一个选择是使用ArgumentCaptor,我相信。如下图所示
final ArgumentCaptor<OptionalDouble> captor = ArgumentCaptor.forClass(OptionalDouble.class);
........
.............
verify(observer).accept(captor.capture());
assertEquals(expected.getAsDouble(), captor.getValue().getAsDouble(), delta);
final ArgumentCaptor captor=ArgumentCaptor.forClass(可选double.class);
........
.............
验证(observer.accept)(captor.capture());
assertEquals(应为.getAsDouble(),captor.getValue().getAsDouble(),delta);
AdditionalMatchers.eq是否支持OptionalDouble?它不支持,ArgumentCaptor
是另一个选项EAH,看起来应该可以工作-最好不需要两个步骤,但这里可能没有选择。谢谢。AdditionalMatchers.eq支持OptionalDouble吗?它不支持,ArgumentCaptor
是另一个选项EAH,看起来应该可以工作-最好不需要两个步骤,但这里可能没有选择。谢谢