본문 바로가기

Web/spring

[Spring REST] Setting up Your Tests

728x90

https://docs.spring.io/spring-restdocs/docs/current/reference/htmlsingle/#getting-started-documentation-snippets-setup

 

Spring REST Docs

Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test or WebTestClient.

docs.spring.io

틀린 해석이 있다면 알려주세요 감사합니다 😌

 


Setting up Your JUnit 5 Tests

 

@ExtendWith(RestDocumentationExtension.class)
public class JUnit5ExampleTests {

 

일반적인 Spring Application TEST 시

 

@ExtendWith({RestDocumentationExtension.class, SpringExtension.class})
public class JUnit5ExampleTests {

 

 

 

빌드 도구에 따라 자동 구성됨

Build toolOutput directory

Maven target/generated-snippets
Gradle build/generated-snippets

 

 

 

 

JUnit 5.1 을 사용하는 경우 출력 경로를 제공하여 기본값을 재정의할 수 있다

public class JUnit5ExampleTests {

	@RegisterExtension
	final RestDocumentationExtension restDocumentation = new RestDocumentationExtension ("custom");

}

 

 

Next, you must provide a @BeforeEach method to configure MockMvc or WebTestClient, or REST Assured. 

private MockMvc mockMvc;

@BeforeEach
void setUp(WebApplicationContext webApplicationContext, RestDocumentationContextProvider restDocumentation) {
	this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
			.apply(documentationConfiguration(restDocumentation)) 
			.build();
}
The MockMvc instance is configured by using a MockMvcRestDocumentationConfigurer. You can obtain an instance of this class from the static documentationConfiguration() method on org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.

MockMvc 인스턴스를 사용함

 

https://docs.spring.io/spring-restdocs/docs/current/reference/htmlsingle/#configuration

 

Spring REST Docs

Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test or WebTestClient.

docs.spring.io

 

 

 

 

 

JUnit4 는 다루지않겠음

 

 

Invoking the RESTful Service

 

RESTful Service 호출

this.mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON)) 
		.andExpect(status().isOk()) 
		.andDo(document("index"));

 

By default, six snippets are written:

  • <output-directory>/index/curl-request.adoc
  • <output-directory>/index/http-request.adoc
  • <output-directory>/index/http-response.adoc
  • <output-directory>/index/httpie-request.adoc
  • <output-directory>/index/request-body.adoc
  • <output-directory>/index/response-body.adoc

 

 

https://github.com/spring-projects/spring-restdocs-samples/blob/main/restful-notes-spring-data-rest/src/main/asciidoc/api-guide.adoc

 

GitHub - spring-projects/spring-restdocs-samples

Contribute to spring-projects/spring-restdocs-samples development by creating an account on GitHub.

github.com

 

샘플코드도 있다

728x90