1

J'utilise Spring Auto REST Docs est une extension de Spring REST Docs pour générer de la documentation API et je fais la mise en place du MockMvc comme dans la documentation.Ne génère pas de stub en utilisant WireMockRestDocs et SpringAutoRestDocs

De plus, en même temps je veux générer le stub WireMock avec « http://cloud.spring.io/spring-cloud-contract/1.0.x/#_generating_stubs_using_restdocs »

Je suit cet exemple: https://github.com/spring-cloud-samples/spring-cloud-contract-samples

Mon problème est quand je crée une mise en place sur mesure le WireMock Stub aren Je n'ai pas créé et lorsque j'utilise la configuration par défaut de MockMvc, j'ai besoin de la configuration personnalisée.

@Before 
public void setUp() { 
     this.mockMvc = MockMvcBuilders 
       .webAppContextSetup(context) 
       .alwaysDo(prepareJackson(objectMapper)) 
       .alwaysDo(document("{class-name}/{method-name}", 
            preprocessRequest(), commonResponsePreprocessor())) 
       .apply(documentationConfiguration(restDocumentation) 
           .uris() 
           .and().snippets() 
           .withDefaults(curlRequest(), httpRequest(), httpResponse(), 
              requestFields(), responseFields(), pathParameters(), 
              requestParameters(), description(), methodAndPath(), 
              section())) 
       .build(); 
} 


@Test 
    public void getTemplate() throws Exception { 
    this.mockMvc.perform(get("/") 
           .contentType(MediaType.APPLICATION_JSON) 
           .accept(MediaType.APPLICATION_JSON)) 
      .andExpect(status().isOk()) 
      .andExpect(jsonPath("result", is("success"))) 
      .andExpect(jsonPath("version", is("0.0.1"))) 
      .andDo(WireMockRestDocs.verify().stub("getFlapTemplate")) 
      .andDo(MockMvcRestDocumentation.document("getFlapTemplate", SpringCloudContractRestDocs.dslContract())); 
} 

Est-il possible de générer le talon WireMock avec une configuration personnalisée?

Répondre

1

Je l'ai travail en ajoutant new WireMockSnippet() à la liste des extraits:

public void setUp() { 
     this.mockMvc = MockMvcBuilders 
       .webAppContextSetup(context) 
       .alwaysDo(prepareJackson(objectMapper)) 
       .alwaysDo(document("{class-name}/{method-name}", 
            preprocessRequest(), commonResponsePreprocessor())) 
       .apply(documentationConfiguration(restDocumentation) 
           .uris() 
           .and().snippets() 
           .withDefaults(curlRequest(), httpRequest(), httpResponse(), 
              requestFields(), responseFields(), pathParameters(), 
              requestParameters(), description(), methodAndPath(), 
              section(), new WireMockSnippet())) 
       .build(); 
} 

Il doit être ajouté explicitement, car la configuration automatique du printemps-Cloud contrat Wiremock fonctionne uniquement avec Spring REST Docs et non avec le printemps Auto REST Docs. Si elle est exécutée avec Spring REST Docs, la ligne suivante ajoute l'extrait: https://github.com/spring-cloud/spring-cloud-contract/blob/master/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockRestDocsConfiguration.java#L43