Подтвердить что ты не робот

Исправление документации pathParameters (urlTemplate не найден)

При использовании pathParameters для документирования параметров пути URI, как показано ниже

@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"))));
}

Я получаю следующее excpetion

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)

4b9b3361

Ответ 1

Сообщение об исключении пытается указать вам в правильном направлении:

urlTemplate не найден. Вы использовали RestDocumentationRequestBuilders для создания запроса?

Вам нужно использовать RestDocumentationRequestBuilders, чтобы Spring REST Docs могли захватывать URL-адрес и извлекать из него параметры. Это упомянутое в документации, где говорится:

Чтобы сделать параметры пути доступными для документации, запрос должен быть построен с использованием одного из методов в RestDocumentationRequestBuilders, а не для MockMvcRequestBuilders.

Замена статического импорта MockMvcRequestBuilders.get на один для RestDocumentationRequestBuilders.get должна устранить проблему.