MockMvc

진기·2024년 1월 17일

Springboot

목록 보기
2/9

MockMvc란?

  • 실제 객체와 비슷하지만 테스트에 필요한 기능만 가지는 가짜 객체를 만들어서 애플리케이션 서버에 배포하지 않고도 스프링 MVC동작을 재현할 수 있는 클래스를 의미한다.
  • 내가 Controller 테스트를 하고싶을 때 실제 서버에 구현한 애플리케이션을 올리지 않고(실제 서블릿 컨테이너를 사용하지 않고) 테스트용으로 시뮬레이션하여 MVC가 되도록 도와주는 클래스이다.

🌏MockMvc 메서드

1) perform()

  • 요청을 전송하는 역할을 한다.

2) get("/xxx/xxx")

  • HTTP 메서드를 결정할 수 있다. (get(), post(), put(), delete())
  • 인자로는 경로를 보내준다

3) params(info)

  • 키 = 값의 파라미터를 전달할 수 있다.
  • 쿼리 스트링을 설정한다.
  • 여러 개일 때는 params(), 하나일 때는 param()을 사용한다.

4) andExpect()

  • 응답을 검증하는 역할을 한다.
    -상태 코드 (status())
    • isOk() : 200 (정상 상태)
    • isNotFound() : 404 (클라이언트 오류)
    • isMethodNotAllowed() : 405 (클라이언트 오류)
    • isInternalServerError() : 500 (서버 오류)
    • is(int status) : status 상태 코드 (임의로 지정한 상태 코드인지 확인)
  • 뷰 (view())
    • 리턴하는 뷰 이름을 검증한다.
    • ex) view().name("hello") : 리턴하는 뷰 이름이 hello인가?
  • 리다이렉트 (redirect())
    • 리다이렉트 응답을 검증한다.
    • ex) redirectUrl("/hello") : '/hello'로 리다이렉트 되었는가?
  • 모델 정보 (model())
    • 컨트롤러에서 저장한 모델들의 정보 검증
  • 응답 정보 검증 (content())
    • 응답에 대한 정보를 검증해준다.

5) andDo(print())

  • 요청/응답 전체 메세지를 확인할 수 있다.
  • print, log를 사용할 수 있는 메서드
    • print() : 실행결과를 지정해준 대상으로 출력, default = System.out
    • log() : 실행결과를 디버깅 레벨로 출력
profile
개발 성장 이야기

0개의 댓글