Интеграция Spring: автоматические интеграционные тесты со встроенным брокером?

Можно ли, скажем, в памяти запустить брокер, который можно использовать для выполнения автоматических тестовых примеров с использованием Spring Integration MQTT? Я пробовал добиться этого с помощью ActiveMQ (следуя https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-messaging.html), но как-то не удалось, может быть, у кого-то есть короткий рабочий пример?

0
0
399
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предоставление встроенного брокера для такого протокола не входит в обязанности Spring Integration (Spring Boot). Если он есть, мы могли бы рассмотреть возможность реализации автоконфигурации по этому вопросу, аналогично тому, что мы делаем для встроенных СУБД, JMS и MongoDB. Вам действительно нужно проконсультироваться с Документация ActiveMQ.

Похоже, в тестовом классе это можно сделать так:

private static BrokerService activeMQBroker;

...

@BeforeClass
public static void setup() throws Exception {
        activeMQBroker = new BrokerService();
        activeMQBroker.addConnector("mqtt://localhost:1883");
        activeMQBroker.setPersistent(false);
        activeMQBroker.setUseJmx(false);
        activeMQBroker.start();
}

Я не пробовал, но это именно то, что я делаю, чтобы протестировать против STOMP.

Отлично, спасибо за ответ. Я попробую и вернусь как можно скорее. И да, мотивация на вопрос, где именно, как вы сказали, встроенные базы данных.

PeMa 17.07.2018 14:53

Сработало ... проверю. Если кому-то еще это нужно: вам нужны зависимости для actriveMq-broker, -client, -mqtt. Будьте осторожны, чтобы версии совпадали. Мне потребовалось некоторое время, чтобы все правильно собрать.

PeMa 10.10.2018 16:19

Другие вопросы по теме