Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

SessionManager Test 추가 본문

Project/블로그 게시판 만들기

SessionManager Test 추가

Seung__ 2021. 10. 17. 22:38
  • 늦게나마 테스트를 열심히 해보자..
  • 현재 Session을 생성/조회/삭제는 테스트가 구현되어 있지 않다.

 

1.MockHttpServletResponse/Request


  • MockHttpServletResponse/Request을 사용하면 Http요청/응답을 흉내낼 수 있다.

 

 

 

2. Test


  • SessionManger는 세 가지 기능을 제공한다.
  • 세션 생성, 세션 조회, 세션 만료.
  • 각 경우에 대해 테스트를 진행.
class SessionManagerTest {

    SessionManager sessionManager = new SessionManager();

    @Test
    void testCreateAndGetSession(){

        //응답으로 세션 생성하기
        MockHttpServletResponse response = new MockHttpServletResponse();
        Member member  = new Member();
        sessionManager.createSession(member, response);

        //client에서 쿠키 담아서 요청을 보냄.
        MockHttpServletRequest request = new MockHttpServletRequest();
        request.setCookies(response.getCookies());

        //서버에서 request로 넘어온 세션을 조회 및 비교
        Object result = sessionManager.getSession(request);
        assertThat(result).isEqualTo(member);
    }

    @Test
    void testSessionExpire(){

        //응답으로 세션 생성하기
        MockHttpServletResponse response = new MockHttpServletResponse();
        Member member  = new Member();
        sessionManager.createSession(member, response);

        //client에서 쿠키 담아서 요청을 보냄.
        MockHttpServletRequest request = new MockHttpServletRequest();
        request.setCookies(response.getCookies());

        //세션 만료
        sessionManager.expire(request);
        Object result = sessionManager.getSession(request);
        assertThat(result).isNull();
    }
    

}

 

3. 결과


  • Test 성공

 

 

4. GitHub: 211017 SessionManager Test


 

GitHub - bsh6463/blog

Contribute to bsh6463/blog development by creating an account on GitHub.

github.com

 

Comments