1

我们在 Spring Boot 项目中使用普通的Spring AMQP

我们希望确保我们的消息消费者可以针对真实消息进行测试,并避免针对静态测试消息进行测试。

因此,我们的生产者可以在测试阶段生成消息片段,消费者测试可以获取这些消息片段,以确保它针对最新的消息版本进行测试,并查看生产者中的更改是否会破坏消费者。

似乎Spring Cloud Contract正是这样做的。那么有没有办法将spring cloud contract与spring amqp集成呢?任何有关前进方向的提示都将受到高度赞赏。

4

1 回答 1

4

实际上,我们不支持开箱即用,但您可以自行设置。在自动生成的测试中,我们使用接口来接收和发送消息,因此您可以实现自己的使用 spring-amqp 的类。消费者端(存根运行器)也是如此。您需要做的是 org.springframework.cloud.contract.verifier.messaging.MessageVerifier为生产者和消费者实现和注册一个类型的 bean。这应该可以工作,因为我们在自动生成的测试中所做的是,@Inject MessageVerifier 如果您注册自己的 bean,它将起作用。

更新:正如@Mathias 所提到的,AMQP 支持已经存在于 Spring Cloud Contract https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html#_stub_runner_spring_amqp

于 2016-10-06T13:13:26.520 回答