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());
}
}
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;
}
}
이 위키의 내용은 다음의 라이센스에 따릅니다 :
CC Attribution-Noncommercial-Share Alike 3.0 Unported전자정부 표준프레임워크 라이센스(
바로가기)
전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.