gpt4 book ai didi

Mockito verify 方法是用 set 调用的,它包含特定的值

转载 作者:行者123 更新时间:2023-12-04 16:18:40 27 4
gpt4 key购买 nike

我想确保使用特定的字符串集作为参数调用 mocked。
例如,我有以下代码:

public class SomeLogic {
@Autowired
private SpecificService specificService;

public void action() {
Set<String> args = fillArgsMethod();
specificService.handleArgs(args);
}
}

我目前的测试尝试如下
@Mock
private SpecificService specificService
@InjectMocks
private SomeLogic someLogic;

@Test
public void testAction() {
someLogic.action();
verify(specificService).handleArgs(anySet());
}

但我想确定,handleArgs() 将收到我期望的确切字符串集。如何修改验证以检查是否使用 set "first","second"调用了 handleArgs?
谢谢

最佳答案

Isah 给出了一个有效的答案,但我想将您的注意力转移到 Mockito 的一个更一般的特性上,即 ArgumentCaptor

在你的情况下,你会按照以下方式做一些事情:

Class<HashSet<String>> setClass = (Class<HashSet<String>>)(Class)HashSet.class;
ArgumentCaptor<Set<String>> setCaptor= ArgumentCaptor.forClass(setClass .class);

verify(specificService).create(setCaptor.capture());
HashSet<String> capturedSet = setCaptor.getValue();

//do whatever test you want with capturedSet

关于Mockito verify 方法是用 set 调用的,它包含特定的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23103759/

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