你如何为java servlet编写单元测试?

时间:2009-12-04 18:05:52

标签: java unit-testing servlets

单元测试java servlet的最佳实践是什么?顺便说一下:这是一个我有一些困难的话题:你如何对java servlet进行单元测试?

3 个答案:

答案 0 :(得分:17)

最重要的事情是尝试从与servlet行为没有直接关系的servlet中提取所有内容

这会立即使核心功能 lot 更容易。通过执行此操作,您可以立即拥有一组未绑定到容器且可测试的组件,而无需运行和连接到容器的痛苦(除了使它们更可重复使用)。应该考虑到架构和适当的组件分层 - 例如组件返回对象结构而不是可显示的片段,不直接使用HttpRequests,但有些请求编组结构等。

您的大部分测试(取决于您的系统结构和复杂性)都可以正常测试。可以使用(例如)Apache Cactus来构建其他以servlet为中心的测试,以进行健全性检查功能。除此之外,您可能希望调查浏览器内的解决方案,例如Selenium

(注意:此方法适用于大多数GUI环境 - 例如Swing)

答案 1 :(得分:2)

今天才提出几乎同样的问题here

Jakarta cactus是servlet的单元测试框架。

答案 2 :(得分:2)

我们通常做的是使用模拟请求和响应加载servlet。如果您正在使用Spring,这一点特别容易,因为它实际上提供了MockHttpRequest和MockHttpResponse。

假设您的应用程序中有明确定义的图层,其余部分很容易。底层服务/ DAO层可以用模拟替换,因此我们只需确保servlet正在执行它应该对给定请求对象执行的操作,并正确编写响应。