首页 >Java >java教程 >如何使用 Mockito 根据输入参数模拟返回值?

如何使用 Mockito 根据输入参数模拟返回值?

DDD
DDD原创
2024-10-24 03:46:02665浏览

How to Mock Return Values Based on Input Arguments with Mockito?

模拟传递参数的返回值

使用特定输入参数测试方法时,可能需要让模拟方法返回相同的值传递给它的值。 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中文网其他相关文章!

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