【发布时间】:2016-10-26 13:25:22
【问题描述】:
在测试中,我使用了一个模拟服务。我想检查是否使用参数之一的特定属性调用了一次服务。 但是,该方法也与其他参数一起多次调用,但我只对上面的一次调用感兴趣。
我的意图是使用参数捕获器来验证调用,以检查感兴趣的调用是否仅被调用一次。 然而这失败了,因为该方法被多次调用,并且参数captor被之后检查。
见下例:
// service method
void serviceMethod(String someString, MyType myType);
// parameter type
class MyType {
private String id;
...
String getID() {
return id;
}
}
// test verification
ArgumentCaptor<MyType> paramCaptor = ArgumentCaptor.forClass(MyType.class);
// fail in verify
Mockito.verify(serviceMock, times(1)).serviceMethod(eq("someConstantValue"), paramCaptor);
assertEquals("123", paramCaptor.getValue().getID());
【问题讨论】:
标签: java unit-testing mockito