如何在Mockito中捕获嵌套方法中的哈希图



类及其方法如下。

Class MyClass{
method1(){
method2(para1)
}
method2(para1){
HashMap<String,String> users=new HashMap<>();
...
para1.setUsers(users)
}
}

我想通过嘲笑MyClass来捕获单元测试的用户哈希图。我如何用mockito完成这项工作?

假设para1@Mock@Spy,如下所示:

@Mock
private Para1Type para1;
// or
@Spy
private Para1Type para1 = new Para1Type();

然后你可以使用一个简单的ArgumentCaptor

@Captor
private ArgumentCaptor<Map<String, String>> usersCaptor;

然后在测试中使用verify()

// call the method under test
myClass.method2(para1);
// verify the call took place
verify(para1).setUsers(usersCaptor.capture());
// extract the users
Map<String, String> users = usersCaptor.getValue();
// do something with users