【发布时间】:2009-12-04 18:05:52
【问题描述】:
对 java servlet 进行单元测试的最佳实践是什么?顺便说一句:这是一个我有一些困难的话题:你如何对你的 java servlet 进行单元测试?
【问题讨论】:
标签: java unit-testing servlets
对 java servlet 进行单元测试的最佳实践是什么?顺便说一句:这是一个我有一些困难的话题:你如何对你的 java servlet 进行单元测试?
【问题讨论】:
标签: java unit-testing servlets
要做的最重要的事情是尝试从 servlet 中提取与 与 servlet 行为没有直接关系的所有内容。
这立即使测试核心功能变得更容易很多。通过这样做,您立即拥有一组不绑定到容器且可测试的组件,而无需运行和连接到容器(除了使它们更可重用)。应该考虑架构和组件的适当分层 - 例如。组件返回对象结构而不是可显示的片段,不直接使用 HttpRequests 而是一些请求编组结构等。
您的大部分测试(取决于您的系统结构和复杂性)都可以正常测试。可以使用(比如)Apache Cactus 构建其他以 servlet 为中心的测试,以实现健全性检查功能。除此之外,您可能希望研究浏览器内解决方案,例如 Selenium。
(注意:这种方法适用于大多数 GUI 环境 - 例如 Swing)
【讨论】:
今天here问了几乎相同的问题。
Jakarta cactus 是 servlet 的单元测试框架。
【讨论】:
我们通常做的是加载带有模拟请求和响应的 servlet。如果您使用的是 Spring,这尤其容易,因为它实际上提供了 MockHttpRequest 和 MockHttpResponse。
假设您在应用程序中有明确定义的层,剩下的就很简单了。底层服务/DAO 层可以替换为模拟,因此我们只需确保 servlet 正在为给定的请求对象执行其应该执行的操作,并正确编写响应。
【讨论】: