首页  >  文章  >  Java  >  如何模拟方法以返回 Java 中收到的参数?

如何模拟方法以返回 Java 中收到的参数?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-23 22:18:29924浏览

How to Mock Methods to Return Arguments Received in Java?

返回接收到的参数的模拟方法

在面向对象编程中,像 Mockito 这样的模拟框架用于创建一个模拟对象,出于测试目的模拟真实对象的行为。测试中的一种常见场景是需要让模拟方法返回传递给它的相同参数。

Mockito 和 Lambda 表达式(Mockito 1.9.5 和 Java 8)

;

对于 Mockito 1.9.5 及更高版本与 Java 8 或更高版本结合使用,您可以利用 lambda 表达式来实现此行为:

when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);

这里, i 代表一个实例IncationOnMock 和 getArguments()[0] 检索传递给模拟方法的第一个参数。

Mockito 和自定义答案(旧版本)

对于旧版本Mockito 版本中,您可以使用自定义 Mockito Answer 实现:

<code class="java">MyInterface mock = mock(MyInterface.class);
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 检索传递的参数并返回它,允许模拟方法回显收到的输入。

以上是如何模拟方法以返回 Java 中收到的参数?的详细内容。更多信息请关注PHP中文网其他相关文章!

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