我一直在使用wiremock 进行集成测试,并且创建了自定义请求匹配器并将其用于授权存根。
有什么办法可以在春季云合同合同定义中使用这个匹配器?
具体来说 - 我想为特定用户创建存根,我可以获得用户的唯一方法是解码授权令牌。如果解码的令牌与用户匹配 - 我想匹配请求并使用提供的存根。
我一直在使用wiremock 进行集成测试,并且创建了自定义请求匹配器并将其用于授权存根。
有什么办法可以在春季云合同合同定义中使用这个匹配器?
具体来说 - 我想为特定用户创建存根,我可以获得用户的唯一方法是解码授权令牌。如果解码的令牌与用户匹配 - 我想匹配请求并使用提供的存根。
目前,我们不支持开箱即用地应用自定义匹配器的简单方法。您需要做的是实现org.springframework.cloud.contract.verifier.converter.StubGenerator
(例如,通过扩展org.springframework.cloud.contract.verifier.wiremock.DslToWireMockClientConverter
将 Groovy DSL 合同正确转换为包含转换器的 JSON 表示的 WireMock StubMapping (如此处提供的http://wiremock.org/docs/ extension-wiremock/ )。您必须在META-INF/spring.factories
(eg org.springframework.cloud.contract.verifier.converter.StubGenerator=\
a.b.c.YourStubGenerator
) 中注册该实现。我认为这可以工作。
把它们加起来。本质上会发生的是,您需要将 Contract 映射到 String 存根映射,遍历这些条目,将字符串转换回 WireMock StubMapping,添加所需的自定义匹配器并返回响应。您必须在其中注册您的实现spring.factories
并将其放在插件的类路径中 - 这样在生成存根时就会选择它。