2015-10-01 4 views
11

Quando si utilizza pathParameters per documentare i parametri di percorso URI come qui di seguitopathParameters eccezione documentazione (urlTemplate non trovato)

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

ottengo il seguente 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) 

Sono abbastanza sicuro che ho fatto la configurazione di prova come spiegato here.

Cosa potrei aver fatto di sbagliato?

(primavera REST docs versioni 1.0.0.BUILD-SNAPSHOT)

risposta

27

Il messaggio di eccezione sta cercando di puntare nella giusta direzione:

urlTemplate non trovato. Hai usato RestDocumentationRequestBuilders per costruire la richiesta?

È necessario utilizzare in modo che Documenti Spring REST possano acquisire l'URL ed estrarre i parametri da esso. Questo è mentioned in the documentation in cui si dice:

Per rendere i parametri di percorso disponibili per la documentazione, la richiesta deve essere costruita utilizzando uno dei metodi su RestDocumentationRequestBuilders piuttosto che MockMvcRequestBuilders.

Sostituzione tua importazione statica di MockMvcRequestBuilders.get con uno per RestDocumentationRequestBuilders.get dovrebbe risolvere il problema.

+0

Quindi dici che è tutto scritto? Hai ragione! Modulo ben documentato. Il problema era ancora una volta di fronte al monitor. – FrVaBe