[ 인수테스트 (AT : Acceptance Test) ]

인수테스트란 요구사항을 작성하는데 집중.

블랙박스 테스트의 성격을 가지므로 시스템 내부 코드를 직접 호출하는 것이 아닌 외부에서 요청하는 방식으로 검증.

* 블랙박스란? 결과물의 내부 구현이나 사용된 기술을 기반으로 검증하기 보단 표면적으로 확인할 수 있는 요소를 바탕으로 검증

* ATDD(Acceptance Test-Driven Development)는 기획 단계부터 인수 테스트를 통해 공통의 이해를 도모해 프로젝트를 진행하는 방법

 

@SpringBootTest 웹서버를 사용하여 테스트

webEnvironment 설정을 통해 웹 서버 환경을 지정

 

[ MockMvc vs RestAssured vs WebTestClient ]

1. MockMvc

@SpringBootTest 의 webEnvironment.MOCK과 함께 사용가능.

mocking된 web environment(ex Tomcat) 환경에서 테스트

2. WebTestClient

@SpringBootTest의 webEnvironment.RANDOM_PORT나 DEFINED_PORT와 함께 사용, Netty를 기본으로 사용

3. RestAssured

실제 web environment(Apache Tomcat)을 사용하여 테스트

 

[ RestAssured 사용법 ]

RestAssured.given().log().all()

.body(params)

.contentType(MediaType.APPLICATION_JSON_VALUE)

.when()

.post("/~")

.then().log().all()

.statusCode(HttpStatus.CREATED.value())

.header("", notNullValue();

 

[ 인수 조건 작성법 ]

Feature: 간략한 기능 서술
  Scenario: 시나리오 제목
    Given: 사전조건
    And: 앞선 내용의 추가적인 내용
    And: 앞선 내용의 추가적인 내용
    When: 발생해야하는 이벤트
    Then: 사후조건
반응형

+ Recent posts