创建HttpServletRequest和HttpServletResponse消息而不是mock

时间:2017-04-10 16:43:22

标签: java unit-testing servlets servlet-filters

我正在为过滤器编写单元测试以记录请求和响应消息。我们可以创建HttpServletRequest和HttpServletResponse消息而不是mock来作为doFilter()方法的输入发送。

1 个答案:

答案 0 :(得分:1)

当然,只需实现界面即可。但是,这些都是大型接口,因此需要维护很多代码而不是模拟。

如果您不使用模拟的原因是对模拟的简单厌恶(好!)请注意,手动实现“模拟”对象和让框架为您执行操作之间确实没有区别;在这两种情况下,您提供的代码都与您最终使用的Web框架不同。

您编写的代码可能更好地通过集成测试进行测试 - 启动真正的Web服务器作为测试工具的一部分并生成真正的HTTP请求。

如果 试图通过手动实现接口来解决问题,那么这是一个自定义HttpServletRequest的示例,它是作为Jetty附带的实现的扩展而实现的: / p>

https://github.com/neo4j/neo4j/blob/3.2/community/server/src/main/java/org/neo4j/server/rest/web/InternalJettyServletRequest.java