gpt4 book ai didi

Java Mockito 当接受参数但有条件时

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

我正在使用 Mockito 编写一个测试用例,并且必须编写对方法的期望(签名如下所示)

public Object process(Employee e);

在我的测试类中,我必须按如下方式模拟我的期望:

when(someClass.process("any Employee with id between 1 and 100.").thenReturn(object1);
when(someClass.process("any Employee with id between 101 and 200.").thenReturn(object2);

如何有条件地设定期望。

最佳答案

您可以使用 Mockito Answer 来完成

final ArgumentCaptor<Employee> employeeCaptor = ArgumentCaptor.forClass(Employee.class);

Mockito.doAnswer(invocation -> {
Employee employee = employeeCaptor.getValue();
if(employee.getId() > 1 && employee.getId() < 100)
return object1;
else if(employee.getId() > 101 && employee.getId() < 200)
return object2;
else someOtherObject;
}).when(someClass).process(employeeCaptor.capture());

关于Java Mockito 当接受参数但有条件时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49172051/

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