是否可以"fetch"通过Mockito.when使用的参数?



是否可以获取/存储使用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

相关内容

  • 没有找到相关文章

最新更新