首页  >  文章  >  Java  >  如何在 Mockito 中将参数返回给模拟方法?

如何在 Mockito 中将参数返回给模拟方法?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-23 22:13:02681浏览

How to Return an Argument to a Mocked Method in Mockito?

如何使用 Mockito 让模拟方法返回传递给它的参数

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn