mockito - 参数是junit中模拟服务的不同错误
问题描述
我试图通过传递一个对象来更新junit,但我得到“参数是不同的错误”
这是我的代码:我更新了现有的dataController、dataService
数据控制器:
old method:
List<String> clientData= dataService .retrieveClientData(user, Clientroperties.product);
updated to:
dataIdCollector dataIdCollector = new dataIdCollector();
List<String> clientData= dataService .retrieveClientData(user, Clientroperties.product, dataIdCollector);
这是数据服务类
DataService:
List<String> clientData retrieveClientData(user, Clientroperties.product, dataIdCollector){
List<ClientDetails> details = dataDao.getDetails(user, Clientroperties.product);
dataIdCollector.collectIds(details);
return serailizeClientDetails(details);
}
我试图通过传递 dataIdCollector 对象来更新junit
dataIdCollector dataIdCollector = new dataIdCollector();
when(mockService.retrieveClientData(user, Clientroperties.product, dataIdCollector))
.thenReturn(Arrays.asList("abc"));
String result = this.mockMvc.perform(
get("/rest" + RestApiRequestMapping.clientData)
.with(credentials)
.accept(MediaType.APPLICATION_JSON)
)
.andExpect(status().isOk())
.andReturn().getResponse().getContentAsString();
verify(mockService).retrieveClientData(user, Clientroperties.product,dataIdCollector);
这里 mockMVC 端点正在调用 dataController 中的方法。再次在控制器类中创建的 dataIdCollector 对象并导致“Arguments are different”错误。如何在junit中解决这个问题?
Argument(s) are different!Wanted:
dataIdCollector@1fb71788
Actual invocations have different arguments:
dataIdCollector@8cb7185
模拟服务没有更新 dataIdCollector 对象,为什么它仍然出现“不同的参数..”错误。
解决方案
推荐阅读
- python - 在python中将double转换为时间
- google-cloud-speech - 谷歌云语音非常不准确,并且在干净的音频上遗漏了单词
- javascript - 砌体js奇怪的行为
- python - 在 ubuntu18.04 中导入错误 tensorflow-gpu
- sql - 整数表示的 MSSQL Case 返回字符串
- pyomo - 将 Pyomo 数据命令文件直接加载到 Python 数据结构中
- java - 将浏览器时区传递给后端 springboot 应用程序以根据浏览器时区生成带有日期的报告
- ios - 将字符串从颤振发送到 iOS
- django - 如何在 Django 中从用户那里获取多个查询
- c# - 在 Azure 服务器目录中创建 PDF 文件的问题