Spring Cloud Wiremock не выбирает преобразователи из файла JSON во время тестов - PullRequest
1 голос
/ 07 апреля 2019

При следующей настройке Spring не выбирает преобразователь, определенный в файле JSON, который находится в каталоге mappings, но делает это, когда я объявляю его непосредственно в тестовом коде.

@Configuration
public class WiremockConfiguration {

  @Bean
  WireMockConfigurationCustomizer optionsCustomizer() {
    return new WireMockConfigurationCustomizer() {

      @Override
      public void customize(WireMockConfiguration options) {
        options.extensions(BodyDefinitionTransformer.class);
      }
    };
  }
}
{
  "request": {
    "method": "POST",
    "urlPattern": "/some/thing"
  },
  "response": {
    "status": 200,
    "bodyFileName": "my_payload.json",
    "transformers": [
      "body-transformer"
    ],
    "headers": {
      "Content-Type": "application/json"
    }
  }
}
public class BodyDefinitionTransformer extends ResponseDefinitionTransformer {

  @Override
  public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition, FileSource files,
      Parameters parameters) {
    return responseDefinition; //checking if this work by putting breakpoint here 
  }

  @Override
  public boolean applyGlobally() {
    return false;
  }

  @Override
  public String getName() {
    return "body-transformer";
  }
}
@ContextConfiguration
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestPropertySource
@AutoConfigureWireMock(port = 9632)
class DummyTestClass extends Specification {

 def "some dummy test" () {
    when:
    stubFor(post("/some/thing").willReturn(aResponse()
        //.withTransformers("body-transformer") transformer work if I declare it in this way
        .withTransformerParameter("test", "test"
        )))

// rest of my test where execute above request
}
}

Код отлично работает, когда я объявляю его с помощью .withTransformers("body-transformer"), но когда я помещаю имя преобразователя в массив transformers в файле JSON, он не работает. У вас есть идеи, почему?

...