221206 - Test

Cornchip·2022년 12월 6일
0

Today-I-Learned

목록 보기
7/28

목차
1. Test



1. Test

1) @WebMvcTest

  • Application Context를 완전히 실행하지 않고 Web Layer를 테스트하고 싶을 때 고려한다. @SpringBootTest가 모든 빈을 구동하기 때문에 구동시간이 오래 걸리고, 디버깅이 어려울 수 있다.
  • Controller 레이어만 테스트하고 싶을 때 유용하다.
  • 의존객체가 필요하다면 @MockBean으로 주입받는다.
  • @WebMvcTest(Controller.class)로 사용한다.

2) MockMvc

  • 실제 객체와 비슷하지만 테스트에 필요한 기능만 가지는 가짜객체를 만든다.
  • 애플리케이션을 배포하지 않고도, 서버의 MVC동작을 테스트할 수 있는 라이브러리다.
  • 주로 컨트롤러 레이어 단위테스트에 많이 사용된다.
  • 컨트롤러의 메서드를 직접 호출하지 않고 MockMvc를 이용해서 가상으로 호출한다.

3) given, when, then

  • 테스트 코드가 한 눈에 쉽게 들어오게 하기 위해서 쓰는 템플릿 작성법
  • given: Mocking, test 활용될 지역변수
    • 테스트를 위해 주어진 상태
    • 테스트 대상에게 주어진 조건
    • 테스트가 동작하기 위해 주어진 환경
  • when: 테스트하고자 하는 동작과, 그 동작으로 인해 만들어진 결과값
    • 테스트 대상에게 가해진 어떠한 상태
    • 테스트 대상에게 주어진 어떠한 조건
    • 테스트 대상의 상태를 변경시키기 위한 환경
  • then: assertion, verify를 통해 동작을 검증하는 코드
    • 앞선 과정의 결과
profile
cornchip

0개의 댓글