Servlet API Mock Sample Source Code

Test Class

 
package egovframework.guideprogram.test.testcase.mock;
 
import junit.framework.Assert;
 
import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
 
import egovframework.guideprogram.test.target.mock.Servlet;
 
public class HttpRequestMockTest {
 
	/**
	 * 서블릿 호출에 필요한 Request 객체에 대한 Mocking 클래스
	 */
	private MockHttpServletRequest request;
 
	/**
	 * 서블릿 호출에 필요한 Response 객체에 대한 Mocking 클래스
	 */
	private MockHttpServletResponse response;
 
	/**
	 * 서블릿 호출 테스트를 위한 대상 테스트 클래스
	 */
	private Servlet servlet;
 
	/**
	 * 서블릿 호출을 위한 Mocking 클래스를 생성하는 초기 셋업 메소드
	 */
	@Before
	public void setUp() {
		servlet  = new Servlet();
 
		request  = new MockHttpServletRequest();
		response = new MockHttpServletResponse();
	}
 
 
    /**
     * 서블릿 호출을 수행해보는 테스트 메소드
     */
    @Test
    public void testCallMyServlet() throws Exception
    {
        servlet.service(request, response);
        Assert.assertEquals(servlet.getClass().getSimpleName(), (String) request.getAttribute("res"));
    }
 
}
 
package egovframework.guideprogram.test.testcase.mock;
 
 
import static org.junit.Assert.assertTrue;
 
import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockHttpSession;
 
import egovframework.guideprogram.test.target.mock.Servlet;
 
 
public class SessionMockTest {
    /** mock object of the HttpServletRequest */
    private MockHttpServletRequest request;
 
    /** mock object of the HttpServletResponse */
    private MockHttpServletResponse response;
 
    /** mock object of the HttpSession */
    private MockHttpSession session;
 
    /** Target Class */
    private Servlet servlet;
 
    /**
     * 각 Test 메소드 시작 전마다 수행되는 메소드<br>
     * 테스트에 사용될 test fixture를 여기에 준비한다.
     * 
     * @throws java.lang.Exception
     */
    @Before
    public void setUp() throws Exception
    {
        servlet  = new Servlet();
 
        request  = new MockHttpServletRequest();
        session = new MockHttpSession();
    }
 
    /**
     * test if the given information is a administrator
     *
     * @throws Exception
    */
    @Test
    public void testConfirmAdmin() throws Exception {
        session.setAttribute("userid", "administrator");
        session.setAttribute("password", "1234");
 
        request.setSession(session);
        servlet.confirmAdmin(request, response);
 
        assertTrue(servlet.isAdmin());
    }
 
    /**
     * test if the given information is not a administrator
     *
     * @throws Exception
    */
    @Test
    public void testConfirmNotAdmin() throws Exception {
        session.setAttribute("userid", "admin");
        session.setAttribute("password", "0000");
 
        request.setSession(session);
        servlet.confirmAdmin(request, response);
 
        assertTrue(!servlet.isAdmin());
    }
}

Target Class

 
package egovframework.guideprogram.test.target.mock;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
/*
 * Test Case 를 위한 대상 Test Object 로서 서블릿 요청을 처리하는 클래스
 */
public class Servlet extends HttpServlet {
 
    /** The logger instance for this class */
    private final Log logger = LogFactory.getLog(getClass());
 
    /** isAdmin */
    private boolean isAdmin = false;
 
    /**
     * 디폴트 메소드
     *
     * @param request
     * @param response
     * @throws ServletException
     * @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    */
    public void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException {
        request.setAttribute("res", this.getClass().getSimpleName());
    }
 
    /**
     * Admin 확인
     *
     * @param request
     * @param response
     * @throws ServletException
    */
    public void confirmAdmin(HttpServletRequest request, HttpServletResponse response)
            throws ServletException {
        HttpSession session = request.getSession();
        String userid = (String) session.getAttribute("userid");
        String password = (String) session.getAttribute("password");
 
        if ("administrator".equals(userid) && "1234".equals(password)) 
        {
           logger.debug("You're administrator");
           this.isAdmin = true;
        } else 
        {
            this.isAdmin = false;
        }
    }
 
 
    /**
     * isAdmin
     * 
     * @return the isAdmin
     */
    public boolean isAdmin()
    {
        return isAdmin;
    }
 
 
    /**
     * @param isAdmin the isAdmin to set
     */
    public void setAdmin(boolean isAdmin)
    {
        this.isAdmin = isAdmin;
    }
}
 
egovframework/dev2/tst/mock/httprequestmocktest_소스.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki