我一直在使用wiremck进行集成测试,并且创建了自定义请求匹配器并用于授权存根。
有什么方法可以在Spring Cloud合约合约定义中使用此匹配器吗?
具体来说-我想为特定用户创建存根,我可以获得用户的唯一方法是解码授权令牌。如果解码令牌匹配用户-我想匹配请求并使用提供的存根。
目前,我们不支持开箱即用地应用自定义匹配器的简单方法。您需要做的是实现org.springframework.cloud。例如,通过扩展
org.springframework.cloud。合约。验证器。wireck。DslToWireMockClientConverter
来正确地将GroovyDSL合约转换为包含转换器JSON表示的WireMock StubMaps(如http://wiremock.org/docs/extending-wiremock/所示)。您必须在META-INF/Spring.工厂
中注册该实现(例如,org.springframework.cloud。验证器。转换器。StubGenerator=\a. b.c.YourStubGenerator
)。我认为这可以工作。
总而言之。本质上会发生的是,您将获取合同到字符串存根映射的映射,遍历这些条目,将字符串转换回WireMock StubMaps,添加所需的自定义匹配器并返回响应。您必须在Spring.工厂
中注册您的实现,并将其放在插件的类路径上——这样在生成存根时就会被选中。