Spring Cloud Contract中的Wiremock自定义请求匹配器

时间:2017-07-25 07:46:37

标签: wiremock spring-cloud-contract

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

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

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

1 个答案:

答案 0 :(得分:0)

目前,我们不支持开箱即用的自定义匹配器的简便方法。您需要做的是实现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的映射到字符串存根映射,迭代这些条目,将字符串转换回WireMock StubMapping,添加所需的自定义匹配器并返回响应。您必须在spring.factories中注册您的实现并将其放在插件的类路径上 - 这样就会在生成存根时选择它。