Java 为servlet编写JUNIT?

Java 为servlet编写JUNIT?,java,unit-testing,servlets,junit,Java,Unit Testing,Servlets,Junit,我正在使用glassfish应用服务器。我需要为一些servlet编写junits。我这里的问题是如何用核心java库创建模拟容器、模拟请求和响应,或者我需要在这里使用某种工具?任何指针都会有帮助吗?1)将应用程序逻辑抽象为servlet调用的对象不是一个坏主意,因此,您可以独立于servlet交互来测试业务逻辑 2) Spring提供了一些功能,包括请求和响应。即使您没有使用Spring,您仍然可以将这些类仅用于测试 正如hvgotcodes所指出的,完全可以为servlet编写JUnit测试

我正在使用glassfish应用服务器。我需要为一些servlet编写junits。我这里的问题是如何用核心java库创建模拟容器、模拟请求和响应,或者我需要在这里使用某种工具?任何指针都会有帮助吗?

1)将应用程序逻辑抽象为servlet调用的对象不是一个坏主意,因此,您可以独立于servlet交互来测试业务逻辑


2) Spring提供了一些功能,包括请求和响应。即使您没有使用Spring,您仍然可以将这些类仅用于测试

正如hvgotcodes所指出的,完全可以为servlet编写JUnit测试。但我建议你在这样做之前仔细考虑一下

servlet是HTTP请求侦听器;它们在servlet容器中运行,响应它们遇到的任何HTTP请求,并打包结果以发送回。在我看来,这就是他们应该做的一切。真正的工作最好留给servlet可以封送的其他对象来完成。这些可以是POJO,很可能是基于接口的,这意味着无需启动servlet容器来运行测试就可以更轻松地进行测试。如果您决定在非基于web的设置中需要相同的功能,这很容易做到,因为它已经驻留在servlet以外的对象中


我会重新考虑这个设计。将大量功能放在servlet中可能是一个错误的决定。

您可能会发现JBoss中的Arquillian很有趣-

在容器中测试

Arquillian提供了一种简单的机制,可以在远程或嵌入式容器中测试应用程序代码,或者作为容器的客户端进行交互

使命宣言

Arquillian项目的任务是提供一个简单的测试工具,开发人员可以使用它为Java应用程序(最有可能是企业应用程序)生成广泛的集成测试。测试用例可以在容器内执行,与测试代码一起部署,或者通过与容器协调,充当部署代码的客户端


谢谢你,达菲莫。但实际上我只是想知道像HTTPunit这样的servlet测试框架是如何创建模拟容器的。有什么想法吗?