-
JUnit에서 세션 생성을 어떻게 해야할까?(JUnit에서 session 처리)웹 개발/Spring Framework 2018. 5. 23. 14:14
스택오버플로 해당 url을 참고했다.
https://stackoverflow.com/questions/27102878/how-to-create-session-in-spring-junit
회사 프로젝트에서 로그인 정보(VO로 관리)는 session으로 관리하고 있다.
JUnit 테스트 중 DAO에서 세션정보를 바로 조회해서 쿼리를 날리는 부분이 있었다.
유닛 테스트를 돌리면서 세션을 만들어주고 주입하는 방법을 찾아야했다.
Mock을 활용하면 가능했다!
기쁨의 환호
123456789101112131415161718192021222324252627282930313233private LoginVO loginVO;protected MockHttpSession session;protected MockHttpServletRequest request;@Beforepublic void setUp() throws Exception{loginVO = new LoginVO();loginVO.setGroupNum( "test" );loginVO.setCompNum( "chocolateCompany" );loginVO.setEmpNum( "zorba" );loginVO.setLanguage( "kr" );session = new MockHttpSession();session.setAttribute("loginVO", loginVO);request = new MockHttpServletRequest();request.setSession(session);RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request));}@Afterpublic void clear(){session.clearAttributes();session = null;}@Testpublic void testSomeMethod(){List<Integer> receiveList = testDAO.getChocolateSession(); /* DAO에서 세션을 받고 처리하는 로직인 메서드 */assertTrue(receiveList != null);assertTrue(receiveList != 0);}cs 이 방법이면 세션이 형성되면서 테스트 속 실제 메서드에서 사용될 세션 값에 들어가게 된다.
MockHttpSession과 MockHttpServletRequest을 활용했다.
맵 형식으로 세션을 담을 수 있다.
'웹 개발 > Spring Framework' 카테고리의 다른 글
이클립스(Eclipse) 설정 내보내기/가져오기 방법 (0) 2018.06.27 JUnit에서 Controller 테스트 코드 작성하기(정리) (0) 2018.06.18 JUnit 테스트 무시하고 싶은 클래스, 메서드 처리 방법 (0) 2018.05.18 [Spring] log4j 설정하기(공유) (0) 2018.05.08 [Spring] log4j2.xml 설정 정리(apache 로그 포함) (0) 2018.04.26