如何以及在Spring Auto REST文档中何处使用failOnUndocumentedParams?

时间:2018-03-26 01:34:57

标签: mockmvc spring-auto-restdocs

我正在使用Spring Auto REST Docs,并且想知道failOnUndocumentedParams的使用以及如何使用它。如果我错过了POJO中的字段,我希望不会生成文档。我相信使用failOnUndocumentedParams是我的解决方案。但是,我不知道如何以及在何处使用它。

@Before
public void setUp() throws IOException {

    mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
                .alwaysDo(JacksonResultHandlers.prepareJackson(objectMapper))
                .alwaysDo(MockMvcRestDocumentation.document("{class-name}/{method-name}",

                        Preprocessors.preprocessRequest(),
                        Preprocessors.preprocessResponse(
                                ResponseModifyingPreprocessors.replaceBinaryContent(),
                                ResponseModifyingPreprocessors.limitJsonArrayLength(objectMapper),
                                Preprocessors.prettyPrint())))
                .apply(MockMvcRestDocumentation.documentationConfiguration(this.restDocumentation)
                        .uris()
                        .withScheme("http")
                        .withHost("localhost")
                        .withPort(8080)
                        .and().snippets()

                        .withDefaults(CliDocumentation.curlRequest(),
                                HttpDocumentation.httpRequest(),
                                HttpDocumentation.httpResponse(),
                                AutoDocumentation.requestFields(),
                                AutoDocumentation.responseFields(),
                                AutoDocumentation.pathParameters(),
                                AutoDocumentation.requestParameters(),
                                AutoDocumentation.description(),
                                AutoDocumentation.methodAndPath(),
                                AutoDocumentation.section()))
                .build();
}

这是我的mockMvc的样子。

1 个答案:

答案 0 :(得分:0)

您可以在创建请求或响应字段摘要时配置该功能。在您的情况下,您希望为所有测试启用该功能,因此在设置Mock MVC时

.withDefaults(
    ...
    AutoDocumentation.requestFields().failOnUndocumentedFields(true),
    AutoDocumentation.responseFields().failOnUndocumentedFields(true),
    ...)

或者,可以为单个测试启用该功能:

document("some-path",
    AutoDocumentation.requestFields().failOnUndocumentedFields(true),
    AutoDocumentation.responseFields().failOnUndocumentedFields(true))