在面向对象编程中,像 Mockito 这样的模拟框架用于创建模拟对象用于测试目的的真实对象的行为。测试中的一种常见场景是需要让模拟方法返回传递给它的相同参数。
对于 Mockito 1.9.5 及更高版本与 Java 8 或更高版本结合使用,您可以利用 lambda 表达式来实现此行为:
when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);
这里,i 代表 InvocableOnMock 的一个实例,getArguments()[0] 检索传递给模拟方法的第一个参数。
对于旧版本的 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];
}
});
此自定义答案检索传递的参数并返回它,允许模拟方法回显收到的输入。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3