zoukankan      html  css  js  c++  java
  • 08.利用Easymock测试简单的servlet

    1.首先导入需要使用的servlet的jar包

    接下来我们编写一个登陆的servlet

    package com.fjnu.service;
    
    import java.net.HttpRetryException;
    
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    
    import com.fjnu.model.User;
    
    public class LoginServlet  extends HttpServlet{
        
        public boolean login(HttpServletRequest rep){
            
            //首先获得登陆的session
            HttpSession session = rep.getSession();
            if(session == null){
                return false;
            }
            User user = (User) session.getAttribute("username");
            if(user == null){
                return false;
            }
            return true;
        }
    
    }

    我们来编写测试代码

    package com.fjnu.service;
    
    import static org.junit.Assert.*;
    import static org.easymock.EasyMock.*;  
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    
    import org.junit.Before;
    import org.junit.Test;
    
    import com.fjnu.model.User;
    public class TestHttpLoginByEasyMock {
        private HttpServletRequest req;
        private HttpSession session;
        private LoginServlet servlet ;
        
        @Before
        public void setUp(){
            req = createStrictMock(HttpServletRequest.class);
            session = createStrictMock(HttpSession.class);
            servlet = new LoginServlet();
        }
        
        /*
         * 登陆操作有三个测试场景
         * 第一个是登陆session为null
         * 第二个是登陆获得用户名不存在
         * 第三个是登陆成功
         * */
    
        @Test
        public void testSeesionIsNull(){
            expect(req.getSession()).andReturn(null);
            replay(req,session);
            //执行登陆操作返回值是false
            assertFalse(servlet.login(req));
            verify(req,session);
        }
        
        @Test
        public void testUserIsNull(){
            expect(req.getSession()).andReturn(session);
            expect(session.getAttribute("username")).andReturn(null);
            replay(req,session);
            //执行登陆操作返回值是false
            assertFalse(servlet.login(req));
            verify(req,session);
        }
        
        @Test
        public void testUserExits(){
            expect(req.getSession()).andReturn(session);
            expect(session.getAttribute("username")).andReturn(new User());
            replay(req,session);
            //执行登陆操作返回值是false
            assertTrue(servlet.login(req));
            verify(req,session);
        }
    }

    视频下载地址

    链接:https://pan.baidu.com/s/1U1zlhz9bQVXTFQqZGgC8pA 密码:423k

  • 相关阅读:
    ZOJ 3876 May Day Holiday 蔡勒公式
    ZOJ 3870 Team Formation 贪心二进制
    ZOJ 3872 计算对答案的贡献
    Codeforces Round #324 (Div. 2)C. Marina and Vasya set
    Jquery前端分页插件pagination使用
    最简单的混合开发教程资料汇总
    最简单的混合开发教程资料汇总
    2018年各大互联网前端面试题二(滴滴打车)
    2018年各大互联网前端面试题二(滴滴打车)
    【福利】小程序开发资源干货汇总
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/8915108.html
Copyright © 2011-2022 走看看