容器外和容器内测试,组件测试(下)

6.2  Cactusservlet测试

1. Servlet6.1AdminServlet.java

2.测试类(AdminServletCactusTest.java

import java.io.IOException;

import javax.servlet.ServletException;

import org.apache.cactus.ServletTestCase;

import org.apache.cactus.WebRequest;

 

public class AdminServletCactusTest extends ServletTestCase{

   

    private AdminServlet adminServlet;

   

    //添加请求参数command

    public void beginDoGet(WebRequest request){

         request.addParameter("command","SELECT...");

    }

   

    //测试运行之前加载

    @Override

    protected void setUp() throws Exception {

         adminServlet = new AdminServlet();

    }

 

    //测试doGet方法

    public void testDoGet(){

         try {

             adminServlet.doGet(super.request, response);

         } catch (ServletException e) {

             // TODO Auto-generated catch block

             e.printStackTrace();

         } catch (IOException e) {

             // TODO Auto-generated catch block

             e.printStackTrace();

         }

         //断言得到的result参数为SELECT...

         assertEquals("SELECT...",request.getAttribute("result"));

    }

}

3.Jetty服务器

import junit.framework.Test;

import junit.framework.TestSuite;

import org.apache.cactus.extension.jetty.JettyTestSetup;

   

public class TestAllWithJetty {

    public static Test suite(){

        //cactus测试的web应用环境所运行的上下文

    System.setProperty("cactus.contextURL","http://localhost:8080/oohla");

         TestSuite suite = new TestSuite();

         suite.addTestSuite(AdminServletCactusTest.class);

         //在测试执行前启动jetty并在测试结束后终止jetty

         return new JettyTestSetup(suite);

    }

}

6.3  DynaMockservlet测试

1.登录过滤器(LoginFilter.java

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

/**

 * 登录过滤器

 */

public class LoginFilter implements Filter {

private String errorPage;

public void destroy() {

     

}

   

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,

           FilterChain chain) throws IOException, ServletException {

      HttpServletRequest request = (HttpServletRequest) servletRequest;

      HttpServletResponse response = (HttpServletResponse) servletResponse;

      String login = (String)request.getSession().getAttribute("login");

      if(login!=null){

           chain.doFilter(request, response);

      }else{

           //response.sendRedirect(errorPage);

          throw new IOException("User isn't login!");  

      }      

}

 

public void init(FilterConfig filterConfig) throws ServletException {

      this.errorPage = filterConfig.getInitParameter("errorPage");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值