无jsp container单元测试jsp

1. 下载tomcat 4.1

2. 把servlet.jar, jasper-compiler.jar, jasper-runtime.jar拷贝出来

3. 按下面编写ant文件

    需要注意的是,jsp.class的输出路径和jsp.src的路径,要对应起来

xml 代码
  1. <project name="cgmaster" default="all" basedir=".">    
  2.   <property name="devlib.path" value="../devlib"/>  
  3.   <property name="runlib.path" value="../lib"/>  
  4.   <property name="output.path" value="../build/temp"/>  
  5.   <property name="webapp.path" value="../web"/>  
  6.   <property name="src.path" value="../src"/>  
  7.   
  8.   <target name="help">  
  9.       <java classname="org.apache.jasper.JspC">  
  10.           <classpath id="jspc.classpath">  
  11.             <pathelement location="${java.home}/../lib/tools.jar"/>  
  12.             <fileset dir="${devlib.path}">  
  13.               <include name="*.jar"/>  
  14.             fileset>    
  15.           classpath>  
  16.       java>  
  17.   target>  
  18.   
  19.   <target name="jspc">    
  20.   
  21.     <taskdef classname="org.apache.jasper.JspC" name="jasper2" >    
  22.       <classpath id="jspc.classpath">    
  23.         <pathelement location="${java.home}/../lib/tools.jar"/>    
  24.         <fileset dir="${devlib.path}">  
  25.           <include name="*.jar"/>    
  26.         fileset>    
  27.       classpath>    
  28.     taskdef>    
  29.   
  30.     <jasper2    
  31.              validateXml="false"    
  32.              uriroot="${webapp.path}"    
  33.              webXmlFragment="${output.path}/generated_web.xml"    
  34.              outputDir="${src.path}" />    
  35.   
  36.   target>    
  37.   
  38.   <target name="compile">  
  39.   
  40.     <javac destdir="${output.path}"  
  41.            optimize="off"  
  42.            debug="on" failonerror="false"  
  43.            srcdir="${output.path}/jspsrc"  
  44.            excludes="**/*.smap">  
  45.       <classpath>  
  46.         <pathelement location="${webapp.path}/WEB-INF/classes"/>  
  47.         <fileset dir="${runlib.path}">  
  48.           <include name="*.jar"/>  
  49.         fileset>  
  50.         <fileset dir="${devlib.path}">  
  51.           <include name="*.jar"/>  
  52.         fileset>  
  53.       classpath>  
  54.       <include name="**" />  
  55.       <exclude name="tags/**" />  
  56.     javac>  
  57.   
  58.   target>  
  59.   
  60.   <target name="all" depends="jspc,compile">  
  61.   target>  
  62.   
  63. project>  
  64.   

<project basedir="." default="all" name="cgmaster"></project>

4. 编写测试用例

java 代码
  1. package com.mystudio.gmaster;   
  2.   
  3. import junit.framework.TestCase;   
  4. import com.meterware.servletunit.InvocationContext;   
  5. import com.meterware.servletunit.ServletRunner;   
  6. import com.meterware.servletunit.ServletUnitClient;   
  7. import com.meterware.httpunit.GetMethodWebRequest;   
  8. import com.meterware.httpunit.WebRequest;   
  9. import com.meterware.httpunit.WebResponse;   
  10.   
  11. import javax.servlet.http.HttpServletRequest;   
  12. import javax.servlet.http.HttpServletResponse;   
  13.   
  14. import cgmaster.index_jsp;   
  15.   
  16. public class TestServletUnit extends TestCase {   
  17.   
  18.     private InvocationContext ic = null ;   
  19.   
  20.     protected void setUp() throws Exception {   
  21.         ServletRunner sr = new ServletRunner();   
  22.         sr.registerServlet("index", index_jsp.class.getName());   
  23.         ServletUnitClient sc = sr.newClient();   
  24.         WebRequest request = new GetMethodWebRequest("http://localhost/index");   
  25.         ic = sc.newInvocation(request);   
  26.     }   
  27.   
  28.     public void testJspC() throws Exception {   
  29.   
  30.         HttpServletRequest re = ic.getRequest();   
  31.         HttpServletResponse rq =  ic.getResponse();   
  32.   
  33.         index_jsp is = (index_jsp) ic.getServlet();   
  34.         is._jspService(re,rq);   
  35.   
  36.         WebResponse response = ic.getServletResponse();   
  37.         System.out.println( response.getText() );   
  38.     }   
  39. }   

5. 参考

http://www.blogjava.net/Good-Game/archive/2007/11/02/157794.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值