Как настроить фиктивную очередь с помощью mockrunner для проверки фильтра xml?

Я использую пакет mockrunner из http://mockrunner.sourceforge.net/ чтобы настроить ложную очередь для тестирования JUnit XML-фильтра, который работает следующим образом:

  1. устанавливает распознанные свойства для ftp-сервера для размещения и получения входных данных xml и сервера очередей jms, который отслеживает задания. Удаленно ждет сервер, который фактически анализирует xml после получения сообщения очереди.
  2. создает удаленный каталог с помощью ftp и запускает соединение с очередью с помощью mqconnectionfactory по указанному адресу сервера очереди.
  3. как только новая запись очереди сделана в 2), фильтр ожидает появления нового сообщения очереди, означающего, что задание было завершено удаленным сервером. Затем фильтр получает измененный XML-файл с FTP-сервера и передает его следующему фильтру.

Тест JUnit, над которым я работаю, просто должен эмулировать эту среду, запустив локальный ftp и фиктивный сервер очередей для фильтра, к которому нужно подключиться, затем дождавшись, пока фильтр подключится к очереди, и поместит новый входной файл xml в локальный каталог. через локальный FTP-сервер дождитесь сообщения очереди, а затем слегка измените ввод XML, поместите измененный XML в новый каталог и отправьте в очередь еще одно сообщение, означающее, что задание выполнено.

Все учебники, которые я нашел в сети, использовали EJB и JNDI для поиска сервера очередей после его создания. Если возможно, я бы хотел обойти этот маршрут, просто создав ложную очередь на моем локальном компьютере и подключившись к ней самым простым способом, не используя EJB и JNDI.

Заранее спасибо!

2 ответа

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

Я бы посоветовал взглянуть на использование Apache Camel для создания тестового примера. Тогда действительно легко переключить ваш тестовый пример с любого из доступных компонентов, и, что наиболее важно, Camel поставляется с несколькими очень удобными конечными точками Mock, которые упрощают тестирование сложной логики маршрутизации, особенно с асинхронными операциями.

Если вы также используете Spring, то, возможно, начните с тестирования этих модульных тестов Spring с фиктивными конечными точками в Camel, которые позволяют вам вводить фиктивные конечные точки для выполнения утверждений вместе с объектом ProducerTemplate, чтобы упростить запуск ваших сообщений для вашего тестового примера., например, посмотрите последний пример на этой странице.

Начните с использования простых конечных точек, таких как конечная точка SEDA, - затем, когда вы разберетесь с базовой структурой пружины / макета, попробуйте использовать конечную точку JMS или конечные точки FTP и т. Д.

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