使用PowerMock编写测试用例的问题

时间:2015-06-15 13:03:10

标签: java junit powermock easymock

我正在尝试为checkRegistry方法编写一个测试用例,这是一个私有方法,我正在使用PowerMock-EasyMock-Juint来实现这一点。

现在测试这个方法我想要抑制对超级调用方法的调用 例如:

intigration = super.getParam("integritycheck"); 

我不希望调用转到superClass方法,但同时我希望设置变量集成。我怎么知道这个?

困难是

super.getParam("integritycheck");  and 
        sTmpOverride = super.getParam("RESPONSE_OVERRIDE"); will return different results. 

我正在尝试编写单元测试的方法。

private String checkRegistry()
      {
        String intigration = "";
        String sresponse = "";
        try
        {
          try
          {
            intigration = super.getParam("integritycheck");
            sresponse = CustomImpl.getParam("responseWrite");


            **Some Business Logic** 


        sTmpOverride = super.getParam("RESPONSE_OVERRIDE");
        if (sTmpOverride == null) {
            this._bRespOverride = true;
        } else {
            this._bRespOverride = sTmpOverride.trim().equalsIgnoreCase(
                    "true");
        }


        sTmpOverride = super.getParam("ERROR_OVERRIDE");
        if (sTmpOverride == null) {
            this._bErrOverride = true;
        } else {
            this._bErrOverride = sTmpOverride.trim().equalsIgnoreCase(
                    "true");
        }

                    **Some Business Logic** 


          Logging.info("integritycheck  : " + intigration );
          Logging.info("responseWrite   : " + sresponse );
          super.track("Error Directory    : " + sErrorPath);
          }
        }
        catch (Exception ex)
        {
          _result= false;
        }
        return _result;
      }

我对使用以下方法感到震惊

 suppress(method(CustomRegisterChecker.class, "getParam"));

其中CustomRegisterChecker.class是超类。

UPDATE1:

//Here I am creating a mock for the super class
 CustomRegisterChecker customRegisterMock=createMock(AbstractListener.class);

//我正在抑制对超类的调用并给出我自己的回复

    expect(abstractListenerMock.getParam("integritycheck  ")).andReturn(null);
    expect(abstractListenerMock.getParam("responseWrite")).andReturn(null); 

但是如何调用和测试方法。我尝试使用Reflection API。但这不起作用。它只是简单地运行程序,压制超类方法不会发生在这里。

0 个答案:

没有答案