我们在春季启动项目中使用普通Spring AMQP。
我们希望确保消息使用者可以测试真实消息并避免测试静态测试消息。
因此,我们的生产者可以在测试阶段生成消息片段,消费者测试可以检测消息片段以确保它针对最新消息版本进行测试,并查看生产者中的更改是否会破坏消费者。
好像Spring Cloud Contract就是这样。那么有没有办法将spring spring contract与spring amqp集成?任何方向的提示都将受到高度赞赏。
答案 0 :(得分:4)
实际上我们不支持开箱即用,但你可以自己设置它。在自动生成的测试中,我们使用接口来接收和发送消息
你可以实现自己的使用spring-amqp的类。消费者方面(存根运行者)也是如此。你需要做的是实现和注册一个bean
生产者和消费者的org.springframework.cloud.contract.verifier.messaging.MessageVerifier
类型。这应该有效,因为我们在自动生成的测试中所做的就是我们@Inject MessageVerifier
因此,如果您注册自己的bean,它将起作用。
更新: 正如@Mathias所提到的,AMQP支持已经存在于Spring Cloud Contract中https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html#_stub_runner_spring_amqp