스프링 테스트
단위테스트 (unit test)
- 가장 작은 단위의 테스트
- 테스트 속도가 빠르다
- 연관관계가 있는 객체들은 어떻게 테스트?
- 사회적 테스트(
SOCIABLE
) : 실제로 연관된 객체들을 주입한 후 테스트
- 고독한 테스트(
SOLITARY
) : 대상이 되는 객체만 테스트(MOCK 객체 이용)
when
/thenReturn
Mockito
가 최선은 아니다 : Mock으로 만들 객체의 구현사항을 알아야 함
통합테스트 (Integration Test)
- 리스폰스...잘 오는지...
- 기존 컨트롤러 테스트 코드 참조
@SpringBootTest
: 실제 로직을 검증 가능
webEnvironment
속성을 사용하여 테스트 서버의 실행 방법을 설정
RANDOM_PORT
: 실제 웹 환경과 유사하게 설정
E2E 테스트 (END-TO-END Test)
- 처음부터 끝까지 테스트
- UI 렌더링 테스트까지 가능
- 셀리늄 사용?
- API E2E Test :
RestAssured
- 올바른 응답을 주는지 확인
- 주로 인수테스트에 사용
테스트 클라이언트
RestAssured
: @SpringBootTest
사용
- 실제 웹 환경을 사용해 테스트
- 외부 의존성 추가 필요
- 느림
- 읽기 쉬움
MockMvc
: @WebMvcTest
사용
- Mock(가짜 객체) 사용
- Spring Framework Test 클래스
- 빠름
- 읽기 힘듬
공부할 것
- E2E 테스트, 통합 테스트, 인수 테스트 사이의 관계
참고자료
0503 수업
Tecoble : MockMvc VS RestAssured