@WebMvcTest 어노테이션
- 스프링 부트에서 제공하는 어노테이션
- 컨트롤러 테스트에 필요한 구성만 로드하여 빠른 테스트가 가능하도록 한다.
- 테스트 대상 컨트롤러 클래스를 지정가능
@WebMvcTest(YourController.class)
public class YourControllerTest {
// ...
}
MockMvc
- 스프링 MVC 테스트 지원 핵심 클래스
- 컨트롤러 메서드 호출하고 HTTP 요청/ 응답을 검증가능
@Autowired
를 통해MockMvc
인스턴스 주입
@Autowired
private MockMvc mockMvc;
- 예시
// when + then
mockMvc
.perform(MockMvcRequestBuilders
.get(BASE_URL + "/{userId}/carts", anyString())
.contentType("application/json"))
.andExpect(MockMvcResultMatchers
.status()
.isOk())
- 특정 엔드포인트로 컨트롤러 테스팅 가능
- 예상한 응답이 돌아오는지도 테스트 가능하다.
테스트가 다른 레이어에 의존하지 않도록 독립적인 테스팅을 지원한다.
@MockBean
- Mockito 라이브러리의 일종
- 스프링 컨텍스트 모의 객체를 등록하는 기능
- 서비스 레이어 혹은 매퍼, 리포지토리 레이어의 동작 스텁 가능
@MockBean
private CartService cartService;
Uploaded by N2T
'자바 > 리팩토링' 카테고리의 다른 글
[리팩토링] TDD 로 프로젝트의 전환의 타당성 분석 (0) | 2023.11.06 |
---|---|
[인텔리제이] 테스트 코드 작성 - 커밋, 푸쉬 시 테스트 코드 수행해 안전한 커밋을 만드는 방법 (0) | 2023.10.26 |
[리팩토링]동시성 문제 - 읽기 3가지 (0) | 2023.10.24 |
[리팩토링]트랜잭션의 격리수준 (0) | 2023.10.24 |
[DB락] MYSQL INNODB 락 관련 게시물 참고 (0) | 2023.10.24 |