본문 바로가기
WEB/Java

[Junit] MockMvc에서 session 사용하기

by 노랑파랑 2023. 4. 18.
반응형

 

개발 완료 후 테스트 상황에서 MockMvc를 사용하기로 했다. 해당 부분은 추후 정리예정이다.

여하간 controller를 테스트 하기 위해서 사용했는데, 해당 controller에서는 사용자가 로그인을 했는지 안했는지 판단하기 위해 session을 확인하기 때문에 테스트 중 오류가 발생했다.

따라서 MockMvc에서 session을 사용하는 방법을 알아보았다.

 

사용법은 간단하다. MockHttpSession 클래스를 사용하면 끝!

MockHttpSession session = new MockHttpSession();

HttpServletRequest와 동일하게 getSession(0 / setSession() 사용이 가능하다.

 

따라서 session에 담긴 데이터를 사용하는 controller를 테스트 하는 경우에는 아래와 같이 session()을 사용하면 된다

MockHttpSession session = new MockHttpSession();
session.setAttribute("session_key", "session_value"); //or Object

mockMvc.perform(post("url")
				.param("", "")
				.session(session))
		.andExpect(status().isOk())
		.andDo(print())

 

* 메소드 참고

메소드 설명
perform 접근 할 http 형식, url 지정
andExpect 결과 기대값, isOk의 경우 status=200
andDo 기대한 결과값이 나왔을 경우 동작
반응형

'WEB > Java' 카테고리의 다른 글

StringEscapeUtils  (1) 2023.02.23
Scanner, BufferedReader  (0) 2017.01.31
Spring Framework : DI  (0) 2017.01.03
Spring Framework : 개념  (0) 2017.01.03
String  (0) 2017.01.03