Spring-Amqp и Аполлон

Я использую библиотеку Spring-AMQP с RabbitMQ для производства. Я хотел написать несколько тестов, которые будут работать «чисто», и я думал об использовании встроенного брокера и издевательстве над ответами. Я знаю, что не могу внедрить Rabbit, но мне было интересно, будет ли Spring AMQP работать с Apollo или другим брокером, который будет работать в JVM.

Я согласен только с публикацией и подпиской, а также с использованием кода поставщика для настройки очередей, если это необходимо.

Спасибо!


person Dovid Kopel    schedule 02.12.2014    source источник


Ответы (1)


Нет; хотя есть общая абстракция (в проекте spring-amqp), в настоящее время существует только конкретная реализация RabbitMQ (spring-rabbit).

Поскольку AMQP является проводным протоколом, вы можете использовать клиент Rabbit под Spring AMQP с каким-либо другим брокером, но только если он (брокер) поддерживает ту же версию протокола. Apollo — это AMQP 1.0, который полностью отличается от версии, которой соответствует RabbitMQ (0-9-1).

Что касается самого фреймворка, мы используем Mockito, чтобы издеваться над кроликом amqp-client, где это возможно. Для более сложных тестов, где имитация слишком сложна, и для интеграционных тестов мы используем JUnit @Rule (BrokerRunning), чтобы пропустить тесты, если на localhost нет брокера.

person Gary Russell    schedule 02.12.2014
comment
Это то, о чем я думал. Спасибо! - person Dovid Kopel; 03.12.2014