`

在eclipse中用jetty和cactus为servlet做单元测试

阅读更多

. 下载jetty,解压到安装目录并在eclipse中做好配置。
2. 下载cactus,将lib目录下的aspectjrt-1.5.3.jar, cactus.core.framework.uberjar.javaEE.14-1.8.0.jar, commons-httpclient-3.1.jar,commons-logging-1.1.jar,httpunit-1.6.jar,junit-3.8.2.jar解压到jetty的lib目录下。
3. 修改myapp的WEB-INF目录下的web.xml文件,添加如下内容:

Xml代码 复制代码
  1. <servlet>  
  2.     <servlet-name>ServletRedirector</servlet-name>  
  3.     <servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>  
  4.     <init-param>  
  5.         <param-name>param1</param-name>  
  6.         <param-value>value1 used for testing</param-value>  
  7.     </init-param>  
  8.     </servlet>  
  9.        
  10.     <servlet>  
  11.         <servlet-name>ServletTestRunner</servlet-name>  
  12.         <servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>  
  13.     </servlet>  
  14.   
  15. <servlet-mapping>  
  16.     <servlet-name>ServletRedirector</servlet-name>  
  17.     <url-pattern>/ServletRedirector</url-pattern>  
  18.     </servlet-mapping>  
  19.        
  20.     <servlet-mapping>  
  21.         <servlet-name>ServletTestRunner</servlet-name>  
  22.         <url-pattern>/ServletTestRunner</url-pattern>  
  23.     </servlet-mapping>  


4. 建立测试的Java文件,TestMyServlet.java

Java代码 复制代码
  1. public class TestMyServlet extends ServletTestCase {   
  2.        
  3.     public TestMyServlet(String theName) throws Exception   
  4.     {   
  5.         super(theName);   
  6.            
  7.         System.setProperty("cactus.contextURL""http://localhost:8080/myapp");   
  8.     }   
  9.   
  10.     public static Test suite()   
  11.     {   
  12.         TestSuite suite = new TestSuite();           
  13.         suite.addTestSuite(TestMyServlet.class);   
  14.         return new Jetty6xTestSetup(suite);   
  15.     }   
  16.   
  17.     public void testMyServletInitialized()   
  18.     {   
  19.         MyServlet servlet = new MyServlet();   
  20.         try {   
  21.             servlet.init(config);   
  22.         } catch (ServletException e) {   
  23.             e.printStackTrace();   
  24.         }   
  25.         assertTrue(servlet.getInitialized());   
  26.     }  


5. 建立待测试的Java文件,MyServlet.java

Java代码 复制代码
  1. public class MyServletextends HttpServlet {   
  2.   
  3.     protected static boolean initialized = false;   
  4.   
  5.     public void init(ServletConfig servletConfig) throws ServletException   
  6.     {   
  7.         super.init(servletConfig);   
  8.            
  9.         if (MyServlet.initialized)   
  10.             return;   
  11.            
  12.         MyServlet.initialized = true;   
  13.     }   
  14.        
  15.     public boolean getInitialized() {   
  16.         return MyServlet.initialized;   
  17.     }   
  18. }  



6. 启动jetty,用junit运行测试,呵呵,绿了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics