不使用WireMockRestDocs和SpringAutoRestDocs生成存根
问题描述:
我正在使用Spring自动REST文档是Spring REST Docs的扩展来生成API文档,并且正如文档中所做的那样设置MockMvc。不使用WireMockRestDocs和SpringAutoRestDocs生成存根
而且,同一时间,我想用“http://cloud.spring.io/spring-cloud-contract/1.0.x/#_generating_stubs_using_restdocs”
我下面这个例子生成WireMock存根:https://github.com/spring-cloud-samples/spring-cloud-contract-samples
我的问题是,当我创建一个设置自定义的WireMock存根AREN没有创建,当我使用默认的MockMvc配置工作,但我也需要自定义配置。
@Before
public void setUp() {
this.mockMvc = MockMvcBuilders
.webAppContextSetup(context)
.alwaysDo(prepareJackson(objectMapper))
.alwaysDo(document("{class-name}/{method-name}",
preprocessRequest(), commonResponsePreprocessor()))
.apply(documentationConfiguration(restDocumentation)
.uris()
.and().snippets()
.withDefaults(curlRequest(), httpRequest(), httpResponse(),
requestFields(), responseFields(), pathParameters(),
requestParameters(), description(), methodAndPath(),
section()))
.build();
}
@Test
public void getTemplate() throws Exception {
this.mockMvc.perform(get("/")
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("result", is("success")))
.andExpect(jsonPath("version", is("0.0.1")))
.andDo(WireMockRestDocs.verify().stub("getFlapTemplate"))
.andDo(MockMvcRestDocumentation.document("getFlapTemplate", SpringCloudContractRestDocs.dslContract()));
}
是否可以使用自定义配置生成WireMock存根?
答
我把它加入new WireMockSnippet()
以片段的清单工作:
public void setUp() {
this.mockMvc = MockMvcBuilders
.webAppContextSetup(context)
.alwaysDo(prepareJackson(objectMapper))
.alwaysDo(document("{class-name}/{method-name}",
preprocessRequest(), commonResponsePreprocessor()))
.apply(documentationConfiguration(restDocumentation)
.uris()
.and().snippets()
.withDefaults(curlRequest(), httpRequest(), httpResponse(),
requestFields(), responseFields(), pathParameters(),
requestParameters(), description(), methodAndPath(),
section(), new WireMockSnippet()))
.build();
}
它刻意添加,因为春天的云合同Wiremock的自动配置只能用弹簧安置文档工作,而不是与春天自动REST文档。如果使用Spring REST Docs运行,以下行添加代码片段:https://github.com/spring-cloud/spring-cloud-contract/blob/master/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockRestDocsConfiguration.java#L43