티스토리 뷰
장점
- 실제 Apache Tomcat을 이용해서 테스트한다.
- 전 구간을 테스트한다.
- 내부 구현이나 기술을 검증하기 보다 시나리오를 기반으로 검증한다.
단점
- 아래와 같은 구성이 필요하며 MockMvc와 비교해서 속도가 느리다.
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class AcceptanceTest {
@LocalServerPort
int port;
@BeforeEach
public void setUp() {
RestAssured.port = port;
}
...
}
사용 방법
- GET 요청 예)
private ExtractableResponse<Response> 지하철_노선_목록_조회_요청() {
return RestAssured
.given()
.accept(MediaType.APPLICATION_JSON_VALUE)
.when().get("/lines")
.then().log().all()
.extract();
}
- POST 요청 예)
public ExtractableResponse<Response> 회원_생성을_요청(String email, String password, Integer age) {
MemberRequest memberRequest = new MemberRequest(email, password, age);
return RestAssured
.given()
.contentType(MediaType.APPLICATION_JSON_VALUE)
.body(memberRequest)
.when().post("/members")
.then().log().all()
.extract();
}
- PUT 요청 예)
public ExtractableResponse<Response> 지하철_노선_수정_요청() {
LineRequest params = new LineRequest("2호선");
return RestAssured
.given()
.contentType(MediaType.APPLICATION_JSON_VALUE)
.body(params)
.when().put("/lines/1")
.then().log().all()
.extract();
}
- DELETE 요청 예)
public ExtractableResponse<Response> 지하철_노선_제거_요청() {
return RestAssured
.given()
.when().delete("/lines/1")
.then().log().all()
.extract();
}
참고
댓글