【发布时间】:2011-06-28 07:57:52
【问题描述】:
如何为 Servlet 测试创建虚拟请求和响应。我阅读了有关 Apache Jkarta Cactus 项目的信息,但不想详细说明。我们可以只构造一个虚拟请求响应并将其传递给 doGet() 方法(当然构造的请求会有一个 URL 和请求参数,但是如何构造这样的虚拟请求)?
并且不希望 junit 依赖于 Apache(应该独立于它运行)。
【问题讨论】:
标签: unit-testing servlets
如何为 Servlet 测试创建虚拟请求和响应。我阅读了有关 Apache Jkarta Cactus 项目的信息,但不想详细说明。我们可以只构造一个虚拟请求响应并将其传递给 doGet() 方法(当然构造的请求会有一个 URL 和请求参数,但是如何构造这样的虚拟请求)?
并且不希望 junit 依赖于 Apache(应该独立于它运行)。
【问题讨论】:
标签: unit-testing servlets
查看 MockHTTPServletRequest(),我认为它会起作用。 Here 是您可以阅读的链接。
【讨论】:
HttpServletRequest 和 HttpServletResponse 只是接口,因此您可以轻松地自己实现它们并在单元测试中使用它们。
当然,这些接口上的各种方法是相互关联的,尤其是在请求中,所以它比最初看起来要复杂。
一些框架带有test implementations 这些接口。例如 Spring 带有 MockHttpServletRequest 和 MockHttpServletResponse 类,它们对这些接口具有全面的合理实现。
或者,您可以使用模拟对象框架(其中 Java 有很多... jmock、mockito、easymock 等等),它允许您只实现您感兴趣的方法。
【讨论】: