Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mockito验证选项Double_Java_Mockito_Hamcrest - Fatal编程技术网

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,看起来应该可以工作-最好不需要两个步骤,但这里可能没有选择。谢谢