为了账号安全,请及时绑定邮箱和手机立即绑定

JMockit 返回空对象类

JMockit 返回空对象类

富国沪深 2021-10-13 16:26:32
我是 JMockit 的新手。我试图模拟一个类的方法,但该属性为空。下面的例子:网络服务实用程序:@Componentpublic class WebserviceUtility {   public SamResponse getSamResponse(Parameters myParam) {       return callWebService.postCall(myParam);;    }}服务等级:@Autowiredprivate 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 都是空的,即使我在新的 Expectations(){{}}; 中传递了值;如何返回实际对象?我错过了什么?希望有人能给我一些光。提前致谢。
查看完整描述

1 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

我能够通过下面的代码解决我的问题。在参数中使用 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;



    }};

}


希望这对遇到相同问题的其他人有所帮助。


查看完整回答
反对 回复 2021-10-13
  • 1 回答
  • 0 关注
  • 252 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信