java - 以嵌入式模式对 JSP 进行单元测试

标签 java unit-testing jsp tomcat jetty

我正在构建一个为 JSP 进行单元测试的小型框架。这些 JSP 有一些自定义标签,否则它们没有任何特殊之处。

虽然有许多可用的 Java 单元测试解决方案,但我不喜欢使用启动单独的成熟 JSP 容器、部署应用程序并通过 TCP 连接收集结果的方法。这种情况的典型示例是 Apache Cactus、Selenium 等。理想情况下,我想要的是拥有一个尽可能轻量级的嵌入式解决方案(不需要网络连接是一个好兆头)。我还查看了各种模拟框架,但在单元测试期间编译/执行 JSP 时没有找到一个干净的工作示例。

我能找到的最接近的解决方案是在嵌入式模式下使用 Jetty,或者特别是它的 ServletTester 类,如 http://docs.codehaus.org/display/JETTY/ServletTester 中所述。

不幸的是,上面的方法只适用于 servlets 而没有提到 JSP。我认为有一种方法可以通过编程将 Jasper servlet Hook 到其中,但不能花一周时间深入研究 Jetty/Jasper 内部结构,只是为了将两者集成起来。我不介意使用任何其他 JSP/Servlet 容器,只要它是免费且可灵活配置的。

如果有人有类似的设置并愿意分享经验,我将不胜感激。

最佳答案

这是一个使用 jsps 运行 Jettys ServletTester 的示例项目。

https://github.com/genthaler/jetty-jsp-unit-test-simple/

关于java - 以嵌入式模式对 JSP 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/831576/

相关文章:

java - NumberFormatException错误

java - AspectJ 不捕获来自 jar 文件的调用

java - 执行 bash 脚本并从 java 传递带空格的参数

python - 如何测试在模拟时是否使用 "self"调用实例的方法?

unit-testing - 可以为普遍使用的依赖项使用服务定位器吗?

javascript - 无缓存和更新在带有 JSP 和 Javascript 的 IE 10 中不起作用

java - Wicket 口顺序下拉

java - 为什么我的 hashmap j 单元测试返回 'expecting null pointer exception' ?

从 Firefox 74/75 发布 multipart/form-data 并在服务器端使用 Apache AJP 连接器时出现 java.io.IOException

java - JSP 自定义标签捕获用户输入