Я хочу запустить JUnit-тест с использованием JMS. Можно ли использовать JUnit-тест для использования JMS вне сервера приложений, такого как JBoss или контейнер CDI?Есть ли способ использовать JMS в тесте JUnit?
ответ
При условии, что отправка и потребление сообщения полностью отделена от JMS, вы можете издеваться над ним.
Например: у вас может быть класс, который реализует интерфейс типа «IMyClassSender». В реальном коде (non junit) все это класс представляет сообщение JMS. В junit внедрите IMyClassSender с классом, который берет ввод, и вместо этого, отправляя его в JMS, он передает его в ваш потребительский класс.
В качестве альтернативы, если вы используете активный мэк: http://activemq.apache.org/how-to-unit-test-jms-code.html
Это похоже на возможное решение! Издевательская JMS! Вопрос об activemq, мне нужно будет включить библиотеку activemq в проект, чтобы использовать его в JUnit? – user840930
Также с ActiveMQ, не нужен ли мне сервер ActiveMQ? – user840930
Не совсем, потому что вы можете использовать 'EmbeddedActiveMQBroker' - см. Ссылку, указанную в ответе, для получения подробной информации. –
Вы также можете пересмотреть с использованием сервера приложений для этого - Arquillian (http://arquillian.org) позволяет для выполнения блока и тест интеграции в JavaEE среде по вашему выбору - и управляет жизненный цикл сервера приложений сам по себе.
Да, ваш ответ ценен, но Аркильян имеет свои нюансы. Его настройка довольно сложная, ее природа сосредоточена на создании «микроразведений» для каждого теста, выполнение тестов довольно продолжительное и так далее ... –
плюс, вопрос четко сформулировал «JUnit test use JMS вне сервера приложений», – chrisl08
Существует также известная проблема с тем, что Arquillian не освобождает ресурсы после завершения теста. Эта проблема может быть showstopper, когда вы планируете запускать свои тесты в среде непрерывного развертывания, такой как Jenkins. – user840930
- 1. Неправильно ли использовать все исключения в тесте JUnit?
- 2. assertequals в тесте JUnit
- 3. В тесте JUnit есть ли способ гарантировать, что все утверждения выполнены?
- 4. Есть ли способ использовать пользовательский ретранслятор TestNG с проверками Junit?
- 5. JUnit: есть ли способ провести параллельное тестирование?
- 6. Обложка findbugs в тесте Junit
- 7. OutOfMemoryError в тесте с JUnit
- 8. «Метод $ неопределен» в тесте JUnit
- 9. Есть ли способ AutoWire WebApplicationContext в тесте управляет Mockito
- 10. Есть ли способ вывода на STDOUT в тесте Grails Spock?
- 11. Могу ли я обнаружить просочившийся поток в тесте Junit?
- 12. В тесте JUnit есть правило, чтобы задать тему теста
- 13. Есть ли способ узнать, запущен ли тест JUnit из Ant?
- 14. Проверить, что XHTML действителен в тесте JUnit?
- 15. Автоматическое создание экземпляра в тесте Spring JUnit
- 16. Захват ввода клавиатуры в тесте JUnit
- 17. Есть ли интеграция Guice JMS
- 18. @Transactional аннотации JUnit - весной и JMS
- 19. Есть ли способ заказать JUnit testcases в TeamCity?
- 20. Есть ли уединение jms реализовать JMS 2.0 spec?
- 21. Как заставить автоувеличивание в тесте JUnit?
- 22. @Transactional не откатывается в тесте JUnit
- 23. Есть ли способ получить исходный IP-адрес из сообщения JMS?
- 24. Можете ли вы открыть новую активность в тесте junit?
- 25. Не удается найти символ в тесте JUnit
- 26. Исключение Null Pointer в тесте JUnit
- 27. Извлечь значение контекста в тесте Junit.
- 28. Переменная метода доступа в тесте jUnit
- 29. Получение списка JAR в тесте JUnit
- 30. Есть ли способ использовать valueForKey с NSPredicate в UITest?
Почему голос? это разумный вопрос – chrisl08
@ chrisl08 ответ хороший. В качестве альтернативы вы можете использовать ** встроенный брокер **, чтобы избежать насмешек. Таким образом, вы можете протестировать интеграцию между вашими компонентами/классами без каких-либо заглушек или макетов. Это ближе к реальной жизни. –