您可以捕获该值,例如
final ArgumentCaptor<Double> captor = ArgumentCaptor.forClass(Double.class)
...
verify(myManager).method1(captor.capture());
然后断言:
assertEquals(expected, captor.getValue(), delta)
或者,也许,使用一个参数匹配器来做断言:
verify(myManager).method1(doubleThat(new ArgumentMatcher<Double>()
{
@Override
public boolean matches(final Object actual)
{
return Math.abs(expected - (Double) actual) <= delta;
}
}));
更新:
您可以使用AdduralMatchers.eq(double,double)
代替使用上述任何一种方法,例如:
verify(myManager).method1(AdditionalMatchers.eq(expected, delta));
虽然根据文档明智地使用AdditonalMatchers
匹配器:
另外,Matchers提供了很少使用的匹配器,只是为了与EasyMock有一定的兼容性而保留。非常明智地使用其他匹配器,因为它们可能会影响测试的可读性。建议使用 Matchers 中的匹配器,并保持存根和验证的简单性。