path参数文档异常(找不到 urlTemplate)

2022-09-01 06:41:57

当 用于记录 URI 路径参数时,如下所示pathParameters

@Test
public void documentGetRouteById() throws Exception {
    this.mockMvc.perform(get("/route/{id}", "FooBar")).andExpect(status().isOk())
            .andDo(document("api-getRouteById",
                    pathParameters(parameterWithName("id").description("die Routen ID"))));
}

我得到以下摘录

java.lang.IllegalArgumentException: urlTemplate not found. Did you use RestDocumentationRequestBuilders to build the request?
    at org.springframework.util.Assert.notNull(Assert.java:112)
    at org.springframework.restdocs.request.PathParametersSnippet.extractUrlTemplate(PathParametersSnippet.java:95)
    at org.springframework.restdocs.request.PathParametersSnippet.extractActualParameters(PathParametersSnippet.java:82)
    at org.springframework.restdocs.request.AbstractParametersSnippet.verifyParameterDescriptors(AbstractParametersSnippet.java:77)
    at org.springframework.restdocs.request.AbstractParametersSnippet.createModel(AbstractParametersSnippet.java:65)
    at org.springframework.restdocs.request.PathParametersSnippet.createModel(PathParametersSnippet.java:67)
    at org.springframework.restdocs.snippet.TemplatedSnippet.document(TemplatedSnippet.java:64)
    at org.springframework.restdocs.mockmvc.RestDocumentationResultHandler.handle(RestDocumentationResultHandler.java:101)
    at org.springframework.test.web.servlet.MockMvc$1.andDo(MockMvc.java:158)

我很确定我做了测试设置,就像这里解释的那样。

我可能做错了什么?

(Spring REST docs 版本是 1.0.0.BUILD-SNAPSHOT)


答案 1

异常消息试图为您指出正确的方向:

找不到 url 模板。您是否使用 RestDocumentationRequestBuilders 来构建请求?

您需要使用,以便Spring REST Docs可以捕获URL并从中提取参数。这在文档中提到过,它说:RestDocumentationRequestBuilders

要使路径参数可用于文档,必须使用 RestDocumentationRequestBuilders 上的方法之一而不是 MockMvcRequestBuilders 来构建请求。

将 静态导入 替换为 一个 for 应该可以解决问题。MockMvcRequestBuilders.getRestDocumentationRequestBuilders.get


答案 2

推荐