Chinaunix首页 | 论坛 | 博客
  • 博客访问: 98505
  • 博文数量: 20
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 294
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-24 10:29
文章分类

全部博文(20)

文章存档

2010年(2)

2009年(1)

2008年(17)

我的朋友

分类: Java

2008-10-16 17:05:06

1.  为了使得项目的开发正规化,准备在3u的这个项目中使用专门的测试工具,经过多方面的比较,最后选择cactus,使用工具eclipse3.3+cactus+junit

   还有就是这里的配置只是用于测试Servlet的,当然也可以用同样的方法配置其可以测试Filter,Jsp等,不过可能要换一个新一点的Cactus的包。   

   1.解压cactus安装文件到某一目录下

   2.将lib下的jar拷贝到项目\web-inf\lib 下

   3.创建cactus.properties文件,并加入classpath(可选,在这里是为为了可以直接用eclipse的junit进行测试,所以这里还是加上吧)

   4.我需要被测试的类

Java代码 复制代码
  1. package com.test.web;   
  2.   
  3. import java.io.FileNotFoundException;   
  4. import java.io.IOException;   
  5.   
  6. import javax.servlet.RequestDispatcher;   
  7. // import javax.servlet.ServletContext;   
  8. import javax.servlet.ServletException;   
  9. import javax.servlet.http.HttpServlet;   
  10. import javax.servlet.http.HttpServletRequest;   
  11. import javax.servlet.http.HttpServletResponse;   
  12. import javax.servlet.http.HttpSession;   
  13.   
  14. import org.jdom.JDOMException;   
  15.   
  16. // import com.ca.website.mainpage.MainPageSupport;   
  17. // import com.error.ErrorProcesser;   
  18. // import com.jem.orm.sql.BsSQLHandler;   
  19. // import com.jem.orm.sql.BsSqlXmlPaser;   
  20. import com.jem.transdata.BsFormData;   
  21. import com.jem.transdata.BsFormTable;   
  22.   
  23. // import com.orm.util.SQLStatementIDS;   
  24.   
  25. public class LoginEdge extends HttpServlet {   
  26.   
  27.      public boolean isValidUser(HttpServletRequest request) {   
  28.          String username = request.getParameter("username");   
  29.          String password = request.getParameter("password");   
  30.          if (username == null || password == null || !username.equals("justin")   
  31.                  || !password.equals("123456")) {   
  32.              return false;   
  33.          } else {   
  34.              return true;   
  35.          }   
  36.      }   
  37. }  


6.我的测试类

Java代码 复制代码
  1. package com.test;   
  2.   
  3. import org.apache.cactus.ServletTestCase;   
  4. import org.apache.cactus.WebRequest;   
  5. import com.test.web.LoginEdge;   
  6.   
  7. public class LoginEdgeTest extends ServletTestCase {   
  8.   
  9.      public void beginValidUser(WebRequest webRequest) {   
  10.          webRequest.addParameter("username""justin");   
  11.          webRequest.addParameter("password""123456");   
  12.      }   
  13.   
  14.      public void testValidUser() {   
  15.          LoginEdge loginServlet = new LoginEdge();   
  16.          assertTrue(loginServlet.isValidUser(request));   
  17.      }   
  18.   
  19.      public void beginInValidUser(WebRequest webRequest) {   
  20.          webRequest.addParameter("username""guest");   
  21.          webRequest.addParameter("password""guest");   
  22.      }   
  23.   
  24.      public void testInValidUser() {   
  25.          LoginEdge loginServlet = new LoginEdge();   
  26.          assertFalse(loginServlet.isValidUser(request));   
  27.      }   
  28.   
  29. }  

7.在web.xml需要如下配置

Xml代码 复制代码
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"  
  3. xmlns=""  
  4. xmlns:xsi=""  
  5. xsi:schemaLocation="   
  6. <A href="/web-app_2_4.xsd" target=_blank>/web-app_2_4.xsdA>">  
  7.   
  8. <servlet>      
  9. <servlet-name>ServletRedirectorservlet-name>        
  10. <servlet-class>org.apache.cactus.server.ServletTestRedirectorservlet-class>  
  11. servlet>       
  12. <servlet>         
  13. <servlet-name>ServletTestRunnerservlet-name>      
  14. <servlet-class>org.apache.cactus.server.runner.ServletTestRunnerservlet-class>      
  15. servlet>           
  16.   
  17. <servlet-mapping>       
  18. <servlet-name>ServletRedirectorservlet-name>        
  19. <url-pattern>/ServletRedirectorurl-pattern>  
  20. servlet-mapping>       
  21. <servlet-mapping>       
  22. <servlet-name>ServletTestRunnerservlet-name>       
  23. <url-pattern>/ServletTestRunnerurl-pattern>     
  24. servlet-mapping>  
  25.   
  26. web-app>  

8.在cactus.properties需要如下配置

cactus.contextURL =

cactus.servletRedirectorName = ServletRedirector

cactus.enableLogging=true

9开始测试

输入以下 //这里应该是把测试类当作一个suite传给TestRunner来运行,这跟平时用JUnit是一样的。

将出现测试结果:
Xml代码 复制代码
  1. xml version="1.0" encoding="UTF-8" ?>  
  2. <testsuites>  
  3. <testsuite name="com.test.LoginEdgeTest" tests="2" failures="0" errors="0" time="0.625">  
  4. <testcase name="testValidUser" time="0.5" />  
  5. <testcase name="testInValidUser" time="0.016" />  
  6. testsuite>  
  7. testsuites> 
阅读(1295) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~