微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spring cloud 合同消息传递 - 如何定义属性并使用正则表达式进行断言

如何解决spring cloud 合同消息传递 - 如何定义属性并使用正则表达式进行断言

给定

使用 Spring Cloud Contract Messaging 定义的合同。

enter image description here

https://github.com/nusmanov/producer/blob/master/src/test/resources/contracts/user-presence.yaml

问题:

  • 生产者方面是否可以标记用于正则表达式匹配的属性
  • 因为认情况下 spring cloud verifier生成带有以下断言的测试:
    • assert user == joe
  • 我需要的是(在生产者方面)
    • assert user has characters

制作人https://github.com/nusmanov/producer

消费者https://github.com/nusmanov/consumer

解决方法

是的,你可以。请阅读此处的文档 https://docs.spring.io/spring-cloud-contract/docs/current/reference/html/project-features.html#contract-dsl-dynamic-properties 。可以在此处找到带有匹配器的消息传递合同示例 https://github.com/spring-cloud/spring-cloud-contract/blob/e91b91efba60c52c3e8a6e65171a9f6dd18cb276/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationMessageSelectorSpec.groovy#L198-L220 。为了您的方便,我将其粘贴

Contract.make {
    input {
        messageFrom "foo"
        messageHeaders {
            header("foo",$(anyUuid()))
        }
        messageBody(foo: 123)
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。