Mockito 是一个 Java 模拟框架,允许创建模拟对象用于测试目的。模拟方法有助于独立于其依赖项来测试代码。在这种情况下,我们想要模拟一个方法以返回在方法调用期间传递给它的值。
解决方案:
自 Mockito 版本 1.9.5 起在 Java 8 中,可以利用 lambda 表达式来实现所需的功能。具体方法如下:
<code class="java">when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);</code>
在此 lambda 表达式中,i 表示 InvocableOnMock 的实例,i.getArguments()[0] 检索传递给模拟方法的第一个参数。
旧版本的替代解决方案:
对于旧版本的 Mockito,可以实现答案以达到相同的结果。下面是一个示例:
<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>
在此 Answer 实现中,从 InvocableOnMock 实例中检索参数数组,并返回第一个参数(字符串)。
使用这些方法,您可以在 Mockito 中配置模拟方法以根据传递给它们的参数返回值,从而允许更灵活和更现实的测试场景。
以上是如何在 Mockito 中将参数返回给模拟方法?的详细内容。更多信息请关注PHP中文网其他相关文章!