46.3.21자동 구성된 Spring REST Docs 테스트
@AutoConfigureRestDocs 어노테이션을 사용하여 Mock MVC, REST Assured 또는 WebTestClient로 테스트 할 때 Spring REST Docs를 사용할 수있습니다. Spring REST Docs에서 JUnit 룰의 필요성을 제거합니다.
@AutoConfigureRestDocs를 사용하여 기본 출력 디렉토리 (Maven을 사용하는 경우 target / generated-snippets 또는 Gradle을 사용하는 경우 build / generated-snippets)를 무시할 수 있습니다. 문서화 된 URI에 나타나는 호스트, 구성표 및 포트를 구성하는 데 사용할 수도 있습니다.
Auto-configured Spring REST Docs Tests with Mock MVC
@AutoConfigureRestDocs는 Spring REST Docs를 사용하기 위해 MockMvc 빈을 커스터마이즈합니다. 다음 예제와 같이 @Autowired를 사용하여 삽입하고 Mock MVC 및 Spring REST Docs를 사용할 때 평소와 같이 테스트에 사용할 수 있습니다.
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@RunWith(SpringRunner.class)
@WebMvcTest(UserController.class)
@AutoConfigureRestDocs
public class UserDocumentationTests {
@Autowired
private MockMvc mvc;
@Test
public void listUsers() throws Exception {
this.mvc.perform(get("/users").accept(MediaType.TEXT_PLAIN))
.andExpect(status().isOk())
.andDo(document("list-users"));
}
}@AutoConfigureRestDocs의 속성보다 Spring REST Docs 구성을 더 많이 제어해야하는 경우 다음 예제와 같이 RestDocsMockMvcConfigurationCustomizer 빈을 사용할 수 있습니다.
WebTestClient로 자동 구성된 Spring REST Docs 테스트
@AutoConfigureRestDocs는 WebTestClient와 함께 사용할 수도 있습니다. 다음 예제와 같이 @Autowired를 사용하여 주입 할 수 있으며 @WebFluxTest 및 Spring REST Docs를 사용할 때 평상시처럼 테스트에 사용할 수 있습니다.
REST Assured로 자동 구성된 Spring REST Docs 테스트
@AutoConfigureRestDocs는 테스트에서 사용할 수있는 Spring REST Docs를 사용하도록 미리 구성된 RequestSpecification 빈을 만든다. 다음 예제와 같이 @Autowired를 사용하여 주입하고 REST Assured 및 Spring REST Docs를 사용하는 경우와 같이 테스트에서 사용할 수 있습니다.
@AutoConfigureRestDocs의 속성에 의해 제공되는 것보다 Spring REST Docs 구성을 더 많이 제어해야하는 경우 다음 예제와 같이 RestDocsRestAssuredConfigurationCustomizer 빈을 사용할 수 있습니다.
Last updated
Was this helpful?