테스트 코드 정리 - DoDaek/freelec-springboot2-webservice GitHub Wiki

  1. private MockMvc mvc

    • 웹 API를 테스트할 때 사용합니다.
    • 스프링 MVC 테스트의 시작점입니다.
    • 이 클래스를 통해 HTTP GET, POST 등에 대한 API 테스트를 할 수 있습니다.
  2. mvc.perform(get("/hello"))

    • MockMvc를 통해 /hello 주소로 HTTP GET 요청을 합니다.
    • 체이닝이 지원되어 여러 검증 기능을 이어서 선언할 수 있습니다.
  3. .andExpect(status().isOk())

    • mvc.peform의 결과를 검증합니다.
    • HTTP Header의 Status를 검증합니다.
    • 우리가 흔히 알고 있는 200, 404, 500 등의 상태를 검증합니다.
    • isOk()는 200인지 아닌지 검증합니다.
  4. .andExpect(content().string(hello))

    • mvc.perform의 결과를 검증합니다.
    • 응답 본문의 내용을 검증합니다.
    • 위에서는 Controller에서 "hello"를 리턴하기 때문에 이 값이 맞는지 검증합니다.
  5. asserThat

    • assertj라는 테스트 검증 라이브러리의 검증 메소드입니다.
    • 검증하고 싶은 대상을 메소드 인자로 받습니다.
    • 메소드 체이닝이 지원되어 isEqualsTo와 같이 메소드를 이어서 사용할 수 있습니다.
  6. isEqualsTo

    • assertj의 동등 비교 메소드입니다.
    • assertThat에 있는 값과 isEqualsTo의 값을 비교해서 같을 때만 성공입니다.
  7. param

    • API 테스트할 때 요청 파라미터를 설정합니다.
    • 단, 값은 String만 허용됩니다.
    • 그래서 숫자/날짜 등의 데이터도 등록할 때는 문자열로 변경해야만 가능합니다.
  8. jsonPath

    • JSON 응답값을 필드별로 검증할 수 있는 메소드입니다.
    • $를 기준으로 필드명을 명시합니다.
    • 현재 프로젝트에서는 nameamount를 검증하니 $.name, $.amount로 검증합니다.
  9. postsRepository.save

    • 테이블 posts에 insert/update 쿼리를 실행합니다.
    • id 값이 있다면 update가, 없다면 insert 쿼리가 실행됩니다.
  10. postsRepository.findAll

    • 테이블 posts에 있는 모든 데이터를 조회해오는 메소드입니다.