2016-09-09 5 views
2

у меня есть два Spring приложения, которые взаимодействуют, которые друг с другом с помощью базы данных и некоторые AMQP:тест Single интеграция нескольких Spring приложений

  • веб-приложение, построенное на Spring MVC
  • Spring-Boot применения

Каждый приложение имеет свои независимые файлы контекста и свойств.

Каков надлежащий способ написания теста единой интеграции для этих двух приложений?

В частности: я могу объединить эти два приложения в одном проекте maven, чтобы иметь доступ к обоим из них.

  1. Можно ли настроить тестовые контексты для обоего приложений в тесте один Spring? На данный момент я понятия не имею, как сказать весне использовать разные контексты для разных приложений в одном тесте.

  2. Другая цель этого тестирования - также получить покрытие кода для этих двух приложений. Вот почему я не могу просто начать, скажем, приложение Spring-boot в виде отдельного процесса. Это вообще возможно?

ответ

2

тестовый модуль Spring приносит до единого контекста приложения (взглянуть на key abstractions section of the official documentation) на тест так нет, вы не можете иметь несколько контекстов приложений на тест.

То, что вы можете иметь это слит контекст приложений, который импортирует контекст как в Spring Boot и Spring MVC приложении; Таким образом, вы можете тестировать компоненты из обоих приложений. Однако это, вероятно, не то, что вы хотите сделать, и это то, что я бы рекомендовал против - ваши тесты станут почти бесполезными, поскольку использование этого подхода может повлечь за собой некоторые хаки, и вы не будете испытывать ваши приложения реалистично, учитывая, что они будут развернуты в отдельности.

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

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

  • Нет связанных вопросов^_^