Исключение документации 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"))));
}
Я получаю следующее исключение
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 для создания запроса?
Вам нужно использовать RestDocumentationRequestBuilders
так что Spring REST Docs может захватить URL и извлечь из него параметры. Это упоминается в документации, где говорится:
Чтобы сделать параметры пути доступными для документации, запрос должен быть построен с использованием одного из методов RestDocumentationRequestBuilders, а не MockMvcRequestBuilders.
Замена вашего статического импорта MockMvcRequestBuilders.get
с одним для RestDocumentationRequestBuilders.get
должен решить проблему.