ApiTest에서 MockMvc를 사용한 테스트가 아닌
1403
1 asked
ApiTest에서 MockMvc를 사용한 테스트가 아닌 RestAssured를 사용하여 테스트하는 이유를 알 수 있을까요??
Answer 3
2
자문자답
좋은 글을 찾아서 공유합니다
https://tecoble.techcourse.co.kr/post/2020-08-19-rest-assured-vs-mock-mvc/
강의 감사합니다
1
Steps를 재사용하기 위해 RestAssured를 사용했다고 이해하면 될까요?
현재는 ProductApiTest가 ApiTest라는 클래스를 상속받는 구조인데, ApiTest 클래스는 SpringBootTest를 사용해서 WebMvcTest에서 mockMvc를 사용하는 것보다 시간이 오래 걸린다는 단점이 있을거같은데 그거에 대해서는 어떻게 생각하시는지 궁금합니다 !
0
Steps를 재사용하기 위해 RestAssured를 사용했다고 이해하면 될까요?
맞습니다. MockMvcTest를 사용하는것보다 더 편리하게 API 테스트에 재사용할 수 있다고 생각했습니다.
WebMvcTest에서 mockMvc를 사용하는 것보다 시간이 오래 걸린다는 단점이 있을거같은데 그거에 대해서는 어떻게 생각하시는지
ApiTest는 IntegrationTest를 하려는 의도로 사용하기 때문에 layer를 테스트하려는 WebMvcTest와는 성격이 다른거 같습니다.
저의 경우 WebMvcTest를 사용하지는 않지만(필요성을 못느껴서 or 다른 방법으로 해결 할 수 있어서) 꼭 사용해야 한다면 플로우를 만들어가는 과정에서만 사용하고 이후에 IntegrationTest(SpringBootTest)로 바꾸거나 플로우가 만들어지고 나면 제거할 거 같습니다.
개인적으로는 도메인 로직을 테스트할 수 있는 단위테스트와 로직을 통합해서 결과를 확인하는 통합테스트만 있으면 되지 않을까 싶기도한데.. 그러기 위해서는 로직이 도메인에 잘 응집되어 있어야 할거같습니다.
해당 답변은 제가 경험한 환경에서만 답변을 드리는 것이니 필요하다면 환경에 맞게
당연히 사용하셔도 좋습니다. 🙂
(정답은 없습니다! 테스트가능한 코드를 만드는게 중요한 것!
테스트 가능하면 언제든지 더 좋게 만들 수 있기 때문에..)
0
안녕하세요 김동호님 !
답변이 늦어서 죄송합니다.
예제에서는 각 도메인별 API를 요청하는 Steps라는 클래스를 만들어서
해당 객체로 API요청을 하고 있습니다.
Steps 객체는 Spring 의존성이 없이 API 요청을 보내 볼 수 있습니다.
mockMvc를 사용하기 위해서는 Steps가 mockMvc의존성을 주입받거나 해서
사용해야 될것 같은데요!
그래서 좀 더 간단하게 재사용 하기 위해 RestAssured를 사용했습니다.
감사합니다!
POJO에서 Spring Test로 넘어갈 때 누락(해결됨)
0
29
1
DatabaseCleanup 코드입니당 필요한 분들 쓰세요
0
125
1
이 방법이 TDD가 맞나요?
0
1108
2
POJO로 개발했는데 비즈니스 로직을 로깅해야 할 경우, 어떻게 해야 할까요?
0
336
1
generate -> add Dependency 이 메뉴가 안보이던데, 어떻게 보이게할까요?
0
352
1
실무 Asserta 사용여부가 궁금합니다.
0
454
1
테스트 코드 내의 지역변수를 final로 선언하는 이유가 궁금합니다.
0
528
1
통합테스트와 단위 테스트
0
964
1
의존성 및 설계? 부분 질문드립니다.
0
399
1
테스트 더블
0
394
1
리뷰반영 강의에서 shortcut ctrl + esc 는 어떻게 설정하나요?
0
482
1
POJO
0
596
1
POJO 상품 등록 기능 구현하기 강의 질문
1
543
1
steps 클래스를 사용하는 이유
0
340
1
랜덤 포트를 사용하는 이유
0
1104
1
상품등록 API 개발, JPA로 변환하기 에서
0
873
2
패키지 구조에 대해서 궁금합니다!
0
645
1
BeforeEach 를 하위 클래스에서 다시 사용하는것에 대해서 질문 드립니다.
1
562
1
ProductService의 updateProduct 로직 질문입니다.
0
556
2
TRUNCATE TABLE 시 AUTO_INCREMENT 컬럼 1로 초기화
2
3494
1
POJO로 개발 후 스프링으로 전환, 이후 JPA 전환하는 이유
4
1283
1
TestRestTemplate 대신에 RestAssured를 사용하는 이유가 있을까요?
0
1187
1
API 테스트로 전환하기
0
1015
1
코드 스타일에 대해서 질문드립니다.
2
1135
1

