【问题标题】:Wiremock custom request matcher in Spring Cloud ContractSpring Cloud Contract 中的 Wiremock 自定义请求匹配器
【发布时间】:2017-12-31 00:12:49
【问题描述】:

我一直在使用wiremock 进行集成测试,并创建了自定义请求匹配器并将其用于授权存根。

有什么方法可以在 Spring Cloud 合约合约定义中使用这个匹配器?

具体来说-我想为特定用户创建存根,我获得用户的唯一方法是解码授权令牌。如果解码的令牌与用户匹配 - 我想匹配请求并使用提供的存根。

【问题讨论】:

    标签: wiremock spring-cloud-contract


    【解决方案1】:

    目前,我们不支持开箱即用地应用自定义匹配器的简单方法。您需要做的是实现org.springframework.cloud.contract.verifier.converter.StubGenerator(例如,通过扩展org.springframework.cloud.contract.verifier.wiremock.DslToWireMockClientConverter 以将Groovy DSL 合同正确转换为包含转换器的JSON 表示的WireMock StubMapping(如此处提供的http://wiremock.org/docs/extending-wiremock/) 。您必须在META-INF/spring.factories 中注册该实现(例如org.springframework.cloud.contract.verifier.converter.StubGenerator=\ a.b.c.YourStubGenerator)。我认为这可行。

    总结一下。本质上会发生的是,您需要将 Contract 映射到 String 存根映射,遍历这些条目,将字符串转换回 WireMock StubMapping,添加所需的自定义匹配器并返回响应。您必须在 spring.factories 中注册您的实现并将其放在插件的类路径中 - 这样会在生成存根时选择它。

    【讨论】:

      猜你喜欢
      • 2020-06-22
      • 2020-04-18
      • 2018-09-27
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多