如何在 Spring 中为单元测试创​​建 HttpServletResponse?

Rob*_*rto 8 java spring easymock

如何HttpServletResponse为单元测试创建,我可以在其中编写输出流和标头(不是MockHttpServletResponse)?在 assert 块中,我希望将OutputStream标头与标准具进行比较httpServletResponse

我用过Spring4java8EasyMocklib。

小智 8

下面是使用 EasyMock 的方式

 HttpServletRequest mockRequest = EasyMock.createMock(HttpServletRequest.class);
 HttpServletResponse mockResponse = EasyMock.createMock(HttpServletResponse.class);
Run Code Online (Sandbox Code Playgroud)

使用 spring 模拟类

import  org.springframework.mock.web.MockHttpServletResponse;
import  org.springframework.mock.web.MockHttpServletRequest;

HttpServletRequest httpServletRequest = new MockHttpServletRequest();
HttpServletResponse httpServletResponse = new MockHttpServletResponse();
Run Code Online (Sandbox Code Playgroud)


Dub*_*bas 7

使用spring-test依赖项,您可以使用该类MockHttpServletResponse

此类包含获取结果流内容的方法,例如;

  • byte[] getContentAsByteArray()
  • 字符串 getContentAsString()

还有一些方法可以检查标题。

有关课程的更多信息,您可以访问:

Spring Test 文档中,有一些关于用于测试的 Servlet API 的有趣信息。此外,本文档建议先使用 Spring 测试组件,然后再使用 EasyMock 等其他组件来测试 Spring 类

这些模拟对象的目标是与 Spring 的 Web MVC 框架一起使用,并且通常比动态模拟对象(例如 EasyMock)或替代的 Servlet API 模拟对象(例如 MockObjects)使用起来更方便。

最好使用 EasyMock 在没有 Spring 的情况下测试您的类和服务,并使用 Spring test Runner 和 spring test framework 实用程序来测试 Spring 组件,如 Spring MVC、Spring Security、...