2013-09-11 5 views
2

Я использую Akka и RabbitMQ в том, что станет широкомасштабным применением.Каков правильный способ тестирования системы с помощью Akka и RabbitMQ?

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

Соответствует ли это требованиям для обеспечения того, чтобы все вел себя через rabbitMQ?

В другом аспекте я начал использовать очередь регистрации для тестирования других вещей. Я просто направляю на него все виды сообщений журнала, а затем читаю очередь, чтобы понять, что происходит. Например, если я хочу проверить, что-то что-то делает, я просто вставляю функцию LogThis("Entered: Method Name"), а затем читаю очередь, в которую помещаются сообщения, чтобы узнать, произошло это или нет.

Звучит это как хорошая идея? Идея заключается в том, что я делаю это даже в модульных тестах. Все остальное издевается, но я проверяю правильное поведение определенных труднодоступных областей, используя этот метод. Просто прочитайте поток данных журнала и посмотрите, делает ли он то, что я хочу.

Я получил эту идею, потому что мне показалось намного легче, чем идти на все проблемы с набором тестов Akka, когда я могу прослушивать очередь журнальных файлов уровня отладки и получать ту же информацию (пока я завершу свою регистрацию точно регистрируется)

ответ

0

Для rabbitMq, мой совет - использовать настоящий RabbiMQ: это можно сделать, используя Vagrant с шеф-поваром для предоставления RabbitMq и плагина Vagrant maven для запуска Box перед тестированием интеграции и остановки его в пост этап интеграционных тестов:

бродяга Maven плагин: http://nicoulaj.github.io/vagrant-maven-plugin/

Vagrant WebSite: http://www.vagrantup.com/

Cookbook Chef для RabbitMQ: https://github.com/opscode-cookbooks/rabbitmq

Суммировать Вы должны:

  1. Установить Vagrant и создать пустой ящик (Centos или Ubunutu).
  2. Предоставление виртуальной машины в кулинарной книге rabbitMQ.
  3. место .box внутри вас домашняя папка (rabbitMQ.box).
  4. Настройте проект maven, чтобы запустить виртуальную машину с бродячим вверх (~/rabbitMQ.box) в предварительной фазе интеграционных тестов.
  5. Конфигурируйте проект maven, чтобы остановить виртуальную машину с бродячей остановкой (~/rabbitMQ.box) в предварительной фазе интеграционных тестов.

Таким образом, ваши тесты будут изолированы.

Надеюсь, что эта помощь

+0

Благодарим за рекомендацию. знак равно –

Смежные вопросы