我正在使用带有 RabbitMQ 的 Spring-AMQP 库进行生产。我想编写一些可以“干净”工作的测试,并且我正在考虑使用嵌入式代理并模拟响应。我知道我不能嵌入 Rabbit,但想知道 Spring AMQP 是否可以与 Apollo 或其他可以在 JVM 中工作的代理一起使用。
我可以只发布和订阅,并在需要时使用供应商特定的代码来设置队列。
谢谢!
我正在使用带有 RabbitMQ 的 Spring-AMQP 库进行生产。我想编写一些可以“干净”工作的测试,并且我正在考虑使用嵌入式代理并模拟响应。我知道我不能嵌入 Rabbit,但想知道 Spring AMQP 是否可以与 Apollo 或其他可以在 JVM 中工作的代理一起使用。
我可以只发布和订阅,并在需要时使用供应商特定的代码来设置队列。
谢谢!
不; 虽然有一个通用的抽象(在spring-amqp
项目中),但目前只有 RabbitMQ ( spring-rabbit
) 的具体实现。
由于 AMQP 是一种有线协议,因此您可以将 Spring AMQP 下的 rabbit 客户端与其他一些代理一起使用,但前提是它(代理)支持相同的协议版本。Apollo 是 AMQP 1.0,与 RabbitMQ 遵循的版本(0-9-1)完全不同。
对于框架本身,我们Mockito
尽可能地模拟兔子amqp-client
。对于模拟太难的更复杂的测试,以及集成测试,如果没有代理,我们使用 JUnit @Rule
( ) 跳过测试。BrokerRunning
localhost