在面向对象编程中,像 Mockito 这样的模拟框架用于创建一个模拟对象,出于测试目的模拟真实对象的行为。测试中的一种常见场景是需要让模拟方法返回传递给它的相同参数。
对于 Mockito 1.9.5 及更高版本与 Java 8 或更高版本结合使用,您可以利用 lambda 表达式来实现此行为:
when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);
这里, i 代表一个实例IncationOnMock 和 getArguments()[0] 检索传递给模拟方法的第一个参数。
对于旧版本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中文网其他相关文章!