티스토리 뷰

장점

  • 실제 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();
}

 

참고

MockMvc VS RestAssured

댓글
Total
Today
Yesterday
링크
Apple 2023 맥북 프로 14 M3, 스페이스 그레이, M3 8코어, 10코어 GPU, 512GB, 8GB, 한글