使用JMock模拟HttpServletRequest

时间:2013-08-29 21:12:48

标签: java unit-testing jmock

我正在尝试单元测试一个方法,我需要使用构造函数创建类的对象。这是构造函数的样子:

public WebformsClinEventBusiness(Webform webForm, String dataEntryModel, String obsBatId)              {
this.webformObj         = webForm;
this.eventObj           = webForm.getEvent(obsBatId);
this.progressNoteText   = webForm.getProgressNoteNext();
this.formValues         = webForm.getFormValues();
this.lastFormValues     = webForm.getLastFormValues();
this.emptyFormValues    = webForm.getEmptyFormValues();
this.formVersion        = webForm.getFormVersion();
this.dataEntryModel     = dataEntryModel;
this.headerValues       = webForm.getHeaderValues();
this.OBS_BAT_ID         = obsBatId;
this.userPreferences    =  (CompSoapUserPreferences)webForm.getRequest().getSession(false).getAttribute(userPreferences.getSESName());
}

问题出在最后一行。我有一个模拟webform对象,并设置了这样的期望:

one (mockWebForm).getRequest();
will(returnValue(mockRequest));
one (mockRequest).getSession(false);
will(returnValue(mockSession));


allowing (mockSession).getAttribute(_SES_NAME);
will(returnValue(mockCompSoapUserPreferences));
allowing (mockCompSoapUserPreferences).getSESName();
will(returnValue(_SES_NAME));

当代码命中webform.getRequest()而不是调用mock时,它调用返回null的实际方法,最后得到一个空指针异常。

有什么想法吗?我真的很感激这方面的任何意见。

谢谢你的时间!

0 个答案:

没有答案