gpt4 book ai didi

java - Mockito:如何使用模拟函数的参数?

转载 作者:行者123 更新时间:2023-12-02 02:47:47 25 4
gpt4 key购买 nike

我正在使用 Mockito 并想做一些类似的事情:

Mockito.doReturn(new MyObject(capturedParameter))
. when(mockedCreatorInstance).findByParameter(anyString())

所以当有人调用方法mockedCreatorInstance.findByParameter("XXXX")时,返回的值将是 new MyObject("XXXX") .

如您所见,mockedCreatorInstance 的模拟方法签名,将是

MyObject findByParameter(String parameter);

我尝试使用 ArgumentCaptor<String> 进行一些操作但失败了。

我应该怎么做才能让它发挥作用?

最佳答案

Mockito 文档建议在 stub 而不是验证时不要使用 ArgumentCaptor<>。

我相信您可以通过以下答案实现您想要的目标:

when(mockedCreatorInstance.findByParameter(anyString()))
.thenAnswer(new Answer<MyObject>() {
public MyObject answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
return new MyObject((String) args[0]);
}});

关于java - Mockito:如何使用模拟函数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44338384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com