用djunit测试servlet等客户端请求

首先要添加djunit,junit,httpunit包

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import org.easymock.IMocksControl;
import com.ibm.dragon.service.SDCConnMgr;
import com.ibm.dragon.service.SDCConnMgrMonitorRecord;
import com.ibm.dragon.servlets.CommandServlet;
import com.meterware.httpunit.GetMethodWebRequest;
import com.meterware.httpunit.WebRequest;
import com.meterware.servletunit.InvocationContext;
import com.meterware.servletunit.ServletRunner;
import com.meterware.servletunit.ServletUnitClient;
import jp.co.dgic.testing.framework.DJUnitTestCase;
import static org.easymock.EasyMock.createControl;

public class CommandServletTest extends DJUnitTestCase{

 public void  setUp(){
  try {
   super.setUp();
  } catch (Exception e) {
   e.printStackTrace();
  }
  
 }
    public void testDoGet() throws IOException, ServletException, SQLException, NamingException{
     ServletRunner sr = new ServletRunner();//创建servlet运行环境

     sr.registerServlet( "CommandServlet", CommandServlet.class.getName() );//向环境中注册servlet

     ServletUnitClient sc = sr.newClient();//创建访问servlet客服端

     WebRequest request   = new GetMethodWebRequest( "http://localhost/CommandServlet" );//发送请求

     String []params = {"CLOSE_ONLINE","OPEN_ONLINE"};
     request.setParameter("cmd",params);
     InvocationContext ic = sc.newInvocation(request);//获得请求的上下文环境

     CommandServlet is = (CommandServlet)ic.getServlet();//调用servlet非服务方法

     addReturnValue("HttpServletRequest", "getParameterValues",params);
     addReturnNull("DraSystem", "setOnlineServiceReady");

     IMocksControl control = createControl();
        Connection conn = control.createMock(Connection.class);  

     Hashtable v = new Hashtable();
  SDCConnMgrMonitorRecord monr = new SDCConnMgrMonitorRecord(conn, "SHINEZ", "db2admin");
     v.put(Integer.toString(conn.hashCode()),monr);

     
        Enumeration em = v.elements();
       
        addReturnValue(SDCConnMgr.class,"getMonitorRecords",em);

     is.doGet(ic.getRequest(), ic.getResponse());
        assertCalled("BufferedWriter", "close");

    }
}

只写了测试代码,源代码不写了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值