JMockit Returns 空对象 class
JMockit Returns Empty Object class
我是 JMockit 的新手。我正在尝试模拟 class 的方法,但 属性 为空。以下示例:
WebServiceUtility:
@Component
public class WebserviceUtility {
public SamResponse getSamResponse(Parameters myParam) {
return callWebService.postCall(myParam);;
}
}
服务Class:
@Autowired
private WebserviceUtility webServiceUtility;
public void checkResponse() {
MyParam myParam = new MyParam();
SamResponse samResponse = WebserviceUtility.getSamResponse(myParam);
if (samResponse.getGoodResponse != null) {
//Do things here
}
}
SamResponse class
public class SamResponse() {
private GoodResponse goodResponse;
private String error;
//setters and getters here..
}
JMockit class:
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 均为 null,即使我在 new Expectations(){{}}; 中传递了值;我怎样才能 return 实际对象?我错过了什么?希望有人能给我一些启发。提前致谢。
我能够通过以下代码解决我的问题。
在参数中使用 withInstanceOf(clazz) 并提供实际对象(在新的 Expectataions 之上)返回实际对象。
我的旧代码是,我正在传递 MyParam.class 的实际实例,然后它 returns 预期的 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;
}};
}
希望这对遇到同样问题的其他人有所帮助。
我是 JMockit 的新手。我正在尝试模拟 class 的方法,但 属性 为空。以下示例:
WebServiceUtility:
@Component
public class WebserviceUtility {
public SamResponse getSamResponse(Parameters myParam) {
return callWebService.postCall(myParam);;
}
}
服务Class:
@Autowired
private WebserviceUtility webServiceUtility;
public void checkResponse() {
MyParam myParam = new MyParam();
SamResponse samResponse = WebserviceUtility.getSamResponse(myParam);
if (samResponse.getGoodResponse != null) {
//Do things here
}
}
SamResponse class
public class SamResponse() {
private GoodResponse goodResponse;
private String error;
//setters and getters here..
}
JMockit class:
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 均为 null,即使我在 new Expectations(){{}}; 中传递了值;我怎样才能 return 实际对象?我错过了什么?希望有人能给我一些启发。提前致谢。
我能够通过以下代码解决我的问题。 在参数中使用 withInstanceOf(clazz) 并提供实际对象(在新的 Expectataions 之上)返回实际对象。 我的旧代码是,我正在传递 MyParam.class 的实际实例,然后它 returns 预期的 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;
}};
}
希望这对遇到同样问题的其他人有所帮助。