当前位置:  开发笔记 > 运维 > 正文

单元测试servlet

如何解决《单元测试servlet》经验,为你挑选了3个好方法。

我有一堆在Tomcat servlet容器下运行的servlet.我想将测试代码与生产代码分开,所以我考虑使用测试框架.JUnit很好地集成到Eclipse中,但我没能使用正在运行的Tomcat服务器运行servlet.您能否推荐一个支持测试Tomcat servlet的单元测试框架?Eclipse集成很好但不是必需的.



1> Scott Bale..:

查看ServletUnit,它是HttpUnit的一部分.简而言之,ServletUnit提供了一个模拟库和实用程序库,您可以在普通的JUnit测试中使用它来模拟servlet容器和其他与servlet相关的对象,如请求和响应对象.上面的链接包含示例.


自2008-05以来,HttpUnit项目似乎没有任何活动.也许它死了?

2> WMR..:

Spring Framework为Servlet API中的几个类提供了很好的现成模拟对象:

http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/mock/web/package-summary.html



3> Will Sargent..:

好的.忽略'tomcat'位并编码到servlet,最好的办法是为响应创建模拟并请求对象,然后告诉它你对它的期望.

所以对于一个标准的空doPost,并使用EasyMock,你将拥有

public void testPost() {
   mockRequest = createMock(HttpServletRequest.class);
   mockResponse = createMock(HttpServletResponse.class);
   replay(mockRequest, mockResponse);
   myServlet.doPost(mockRequest, mockResponse);
   verify(mockRequest, mockResponse);
}

然后开始向doPost添加代码.模拟会失败,因为他们没有期望,然后你可以从那里设定期望.

请注意,如果要将EasyMock与类一起使用,则必须使用EasyMock类扩展库.但从那时起它将以同样的方式运作.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有