인수테스트를 하기전 인수테스트는 무엇이고 어떤식으로 실습을하고 테스트를 진행하며 알아야할 기본적인 지식에 대해 학습하고 간단한 테스트를 만들어 실습해가며 학습한다.
인수테스트는 블랙박스 테스트의 성격(1)을 가지는게 좋다고 한다. 그렇기에 시스템 내부 코드를 직접 호출하는 것이 아닌 외부에서 요청하는 방식으로 검증하도록 한다.
테스트용 서버를 로드하도록 설정한다.
@SpringBootTest
(2) 어노테이션을 클래스에 붙혀서 테스트를 위한 웹 서버를 사용한다.
webEnvironment
(3)설정을 통해 웹 서버의 환경을 지정해줄 수 있다.
@DisplayName("지하철 역 관련 기능")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class StationAcceptanceTest {
...
}
테스트를 위한 서버에 API요청을 보내기 위해 클라이언트 객체를 설정해야 한다. 테스트를 위한 클라이언트 객체는 MockMvc
, RestAssured
, WebTestClient
가 있으며, 현재 진행하는 ATDD과정에서는 RestAssured
를 사용하기에 나도 RestAssured
를 사용하도록 한다.
@DisplayName("지하철 역 관련 기능")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class StationAcceptanceTest {
@LocalServerPort
int port;
@BeforeEach
public void setUp() {
RestAssured.port = port;
}
...
}