java - JMockit 返回空对象类
问题描述
我是 JMockit 的新手。我正在尝试模拟一个类的方法,但该属性为空。以下示例:
网络服务实用程序:
@Component
public class WebserviceUtility {
public SamResponse getSamResponse(Parameters myParam) {
return callWebService.postCall(myParam);;
}
}
服务等级:
@Autowired
private WebserviceUtility webServiceUtility;
public void checkResponse() {
MyParam myParam = new MyParam();
SamResponse samResponse = WebserviceUtility.getSamResponse(myParam);
if (samResponse.getGoodResponse != null) {
//Do things here
}
}
SamResponse 类
public class SamResponse() {
private GoodResponse goodResponse;
private String error;
//setters and getters here..
}
JMockit 类:
public void testSamResponseGood() {
final SamResponse samResponse = new SamResponse();
GoodResponse res = new GoodResponse();
samResponse.setGoodResponse(res);
MyParam param = new MyParam();
param.setAtt("test");
new Expectations() {{
webServiceUtility.getSamResponse(param);
result = samResponse ;
times = 1;
}};
}
当我尝试检查 samResponse 的值时,属性 - error 和 goodResponse 都为空,即使我在 new Expectations(){{}}; 中传递了值;如何返回实际对象?我错过了什么?希望有人能给我一些光明。提前致谢。
解决方案
我能够通过以下代码解决我的问题。在参数中使用 withInstanceOf(clazz) 并提供实际对象(高于新的 Expectataions)返回实际对象。我的旧代码是,我传递了 MyParam.class 的实际实例,然后它按预期返回 goodResponse 对象。
旧代码:
MyParam params = new MyParams();
param.setAtt("test");
new Expectations() {{
webServiceUtility.getSamResponse(params);
result = samResponse ;
times = 1;
}};
固定代码:
public void testSamResponseGood() {
final SamResponse samResponse = new SamResponse();
GoodResponse res = new GoodResponse();
samResponse.setGoodResponse(res);
new Expectations() {{
webServiceUtility.getSamResponse(withInstanceOf(MyParam.class));
result = samResponse ;
times = 1;
}};
}
希望这对遇到同样问题的其他人有所帮助。
推荐阅读
- r - 删除重复的行,只保留那些具有完整列的行
- javascript - 为什么“menuBtn.addEventListner”不是一个函数?
- c# - 不调试时无法通过路由访问组件
- gstreamer - 将 GstBuffer 列表推送到下一个下游元素
- batch-file - 如何对齐相邻列中的重新查询输出
- php - 将文件上传到 CMSoctober 显示 0 字节 - 问题
- azure - 面对原因:java.net.UnknownHostException:login.microsoftonline.com
- android - 如何解决此“无法在运行时权限之前触发默认处理程序提示”
- vue.js - Vue 3 - 货币输入过滤器
- python - 带有代码管道错误的 AWS CI CD - 附加日志