”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何模拟方法以返回 Java 中收到的参数?

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

发布于2024-11-16
浏览:345

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 代表 InvocableOnMock 的一个实例,getArguments()[0] 检索传递给模拟方法的第一个参数。

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

对于旧版本的 Mockito,您可以使用自定义 Mockito 答案实现:

MyInterface mock = mock(MyInterface.class);
when(mock.myFunction(anyString())).thenAnswer(new Answer() {
    @Override
    public String answer(InvocationOnMock invocation) throws Throwable {
        Object[] args = invocation.getArguments();
        return (String) args[0];
    }
});

此自定义答案检索传递的参数并返回它,允许模拟方法回显收到的输入。

版本声明 本文转载于:1729677594如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3