我正在尝试使用此方法测试控制器:
@RequestMapping(value="/export-csv")
public ModelAndView exportCSV(@ModelAttribute("gsscModel") GsscModel gsscModel) {
我想知道如何创建单元测试来测试它。目前我正在使用:
MockHttpServletRequest request = new MockHttpServletRequest();
request.setRequestURI("/support/export-csv");
//request.setMethod("GET");
new AnnotationMethodHandlerAdapter().handle(request,
new MockHttpServletResponse(), this.controller);
但是我总是遇到以下错误:
org.springframework.web.HttpSessionRequiredException:需要会话属性'gsscModel' - 在会话中找不到
我一直在尝试在文档中找到有关此内容的信息,但没有找到任何内容。
由于
答案 0 :(得分:1)
要重新审核我的评论,我建议您不要正确地对代码进行单元测试。 Spring 3注释方法的一个好处是它使单元测试变得相当容易,因为通常不需要弄乱模拟请求和响应对象。
在您的情况下,您的单元测试可以直接调用exportCSV
方法,并适当地处理返回的ModelAndView
。实际上没有必要使用像AnnotationMethodHandlerAdapter
这样的基础结构类来为您调用该方法,这只会让事情变得复杂。