是否可以获取/存储使用Mockito.when时使用的参数?
例如下面的伪代码:Mockito.when(mock.someMethod(**any string**)).thenReturn(print(** any string **));
打印将是:
public void print(String s) {
System.out.println(s);
}
可以这样使用:
Person mockPerson = ...
mockPerson.setName("John");
这将触发'John'将被打印出来。
可能是一个蹩脚的例子,但我想"存储"/"使用"被模拟方法调用的任何参数。
后续问题:如果没有,其他测试框架可以做到这一点吗?
您可能会对ArgumentCaptor文档感兴趣。
这是你要找的。创建使用调用目标的自定义Answer。
when(mock.someMethod(10)).thenAnswer(new Answer<Integer>() {
public Integer answer(InvocationOnMock invocation) throws Throwable {
return (Integer) invocation.getArguments()[0];
}
}
链接到Mockito文档:http://docs.mockito.googlecode.com/hg/latest/org/mockito/stubbing/OngoingStubbing.html#then%28org.mockito.stubbing.Answer%29