【问题标题】:Spring Cloud Contract and plain Spring AMQPSpring Cloud Contract 和普通 Spring AMQP
【发布时间】:2017-02-15 02:37:36
【问题描述】:

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

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

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

似乎Spring Cloud Contract 正是这样做的。那么有没有办法将spring cloud contract与spring amqp集成呢?任何方向的提示将不胜感激。

【问题讨论】:

    标签: spring spring-cloud spring-amqp spring-cloud-contract


    【解决方案1】:

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

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

    【讨论】:

    • 感谢 Marcin - 您的提示和查看其中一个生成的测试让我点击了它 - 我想我现在可以尝试实现集成 - 似乎是一件相当小的事情。
    • 太棒了!让我们看看它是否有效:) 我们可以将其标记为已回答吗?
    • 同时,我在 spring-cloud-contract 中添加了一个 spring-amqp 集成。所以现在支持开箱即用cloud.spring.io/spring-cloud-contract/…
    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 2017-09-29
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 2017-02-17
    • 1970-01-01
    相关资源
    最近更新 更多