我有一种情况,我的方法返回一些对象,方法包含一些参数,我有条件基于返回的响应和一个参数.
Map<String,List<Object>> testMap = new HashMap<>();
Object obj = new Object();
Set<String> test = myService.getModelSearchStrings(testMap, obj);
if(CollectionUtils.isNotEmpty(test){
}
if(MapUtils.isNotEmpty(testMap){
}
Run Code Online (Sandbox Code Playgroud)
测试:
Set<String> result = new HashSet<>();
result.add("123");
Mockito.when(mockedMtnService.getModelSearchStrings(Mockito.anyMap(), Mockito.anyObject())).thenReturn(result);
Run Code Online (Sandbox Code Playgroud)
我想返回Dummy响应,即结果HashSet并想要更新参数值(Map).
Laz*_*ass 12
我只能假设你正在寻找thenAnswer和回答.随着thenAnswer您可以修改嘲笑方法的参数,并从该方法返回一个结果.
例如:
Set<String> result = new HashSet<>();
result.add("123");
Mockito.when(mockedMtnService.getModelSearchStrings(Mockito.anyMap(), Mockito.anyObject())).thenAnswer(new Answer<Set>() {
@Override
public String answer(InvocationOnMock invocation) throws Throwable {
Map<String,List<Object>> mapArg = (Map<String,List<Object>>)invocation.getArguments()[0];
// do something with mapArg....
return result;
}
});
Run Code Online (Sandbox Code Playgroud)
或者使用Java 8 lambda:
Mockito.when(mockedMtnService.getModelSearchStrings(Mockito.anyMap(), Mockito.anyObject())).thenAnswer(invocation -> {
Map<String,List<Object>> mapArg = (Map<String,List<Object>>)invocation.getArguments()[0];
// do something with mapArg....
return result;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11081 次 |
| 最近记录: |