【问题标题】:How do you write unit tests for your java servlets?您如何为您的 java servlet 编写单元测试?
【发布时间】:2009-12-04 18:05:52
【问题描述】:

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

【问题讨论】:

标签: java unit-testing servlets


【解决方案1】:

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

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

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

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

【讨论】:

  • "2011/08/05 - 雅加达仙人掌已退役。"
【解决方案2】:

今天here问了几乎相同的问题。

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

【讨论】:

  • 很高兴知道这个雅加达仙人掌项目。但我也想知道什么是最佳实践。感谢您的提示!
  • "2011/08/05 - 雅加达仙人掌已退役。"
【解决方案3】:

我们通常做的是加载带有模拟请求和响应的 servlet。如果您使用的是 Spring,这尤其容易,因为它实际上提供了 MockHttpRequest 和 MockHttpResponse。

假设您在应用程序中有明确定义的层,剩下的就很简单了。底层服务/DAO 层可以替换为模拟,因此我们只需确保 servlet 正在为给定的请求对象执行其应该执行的操作,并正确编写响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多