使用Mockito时,是否可以获取/存储使用的参数?
例如这个伪代码:
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'将被打印出来。
也许是一个蹩脚的例子,但我想“存储”/“使用”模拟方法将被调用的任何参数。
后续问题:如果没有,那么其他测试框架可以做到这一点。
答案 0 :(得分:2)
ArgumentCaptor文档对您来说很有意思。
答案 1 :(得分:1)
这就是你要找的东西。创建使用调用目标的自定义答案。
when(mock.someMethod(10)).thenAnswer(new Answer<Integer>() {
public Integer answer(InvocationOnMock invocation) throws Throwable {
return (Integer) invocation.getArguments()[0];
}
}