gpt4 book ai didi

java - 有没有办法监视传递给 Mockito 中模拟对象的参数

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

我有一个使用 Mockito 模拟的服务。有什么方法可以验证传递给服务调用的参数吗?

例如:

我有一个名为 employeeAnalyzer.calculateAnnualAppraisalForEmployee(Employee emp) 的服务。

所以从单元测试中我想做一些类似的事情

verifyThat ("John", emp.getName());
verifyThat ("Doe", emp.getLastName);

基本上我想监视发送到我使用注入(inject)的服务的参数

@InjectMocks
EmployeeAnalyzer employeeAnalyzer;

提前致谢。

最佳答案

当然!莫基托太棒了。您可以使用ArgumentCaptor捕获Employee参数,然后进行一些断言。

(示例取自上一个链接)

ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);
verify(mock).doSomething(argument.capture());
assertEquals("John", argument.getValue().getName());

或者使用 @Captor 的新时髦方式注释

@Captor ArgumentCaptor<AsyncCallback<Foo>> captor;

@Before
public void init(){
MockitoAnnotations.initMocks(this);
}

@Test public void shouldDoSomethingUseful() {
//...
verify(mock).doStuff(captor.capture());
assertEquals("foo", captor.getValue());
}

关于java - 有没有办法监视传递给 Mockito 中模拟对象的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32955936/

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