类及其方法如下。
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