模拟传递参数的返回值
使用特定输入参数测试方法时,可能需要让模拟方法返回相同的值传递给它的值。 Mockito 提供了多种方法来实现此目的,具体取决于所使用的版本。
对于 Mockito 1.9.5 和 Java 8 :
Mockito 添加了对 lambda 表达式的支持,允许用于直接返回传递的参数:
<code class="java">when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);</code>
对于较旧的 Mockito 版本:
在 Mockito 1.9.5 之前,您可以在 thenAnswer 方法中使用 Answer:
<code class="java">when(mock.myFunction(anyString())).thenAnswer(new Answer<String>() { @Override public String answer(InvocationOnMock invocation) throws Throwable { Object[] args = invocation.getArguments(); return (String) args[0]; } });</code>
以上是如何使用 Mockito 根据输入参数模拟返回值?的详细内容。更多信息请关注PHP中文网其他相关文章!