2012-06-29 2 views
5

Я пытаюсь обернуть голову вокруг Аркиллиана, и я просто не принципиально понимаю разницу между in-container режимом против as-client режима.Режимы Arquillian Run

Я понимаю, что, с Arquillian/Упаковочная:

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

Итак, с моей точки зрения, все просто «чувствует», как всегда, было бы in-container, так как тесты всегда выполняются внутри контейнера.

Пожалуйста, помогите мне разобраться в различиях между этими двумя режимами и какие типы интеграционных тестов подходят для обоих режимов. Бонусные баллы за предоставление конкретного примера кода (и не нечеткие из справочника!), Которые объясняют, почему/как вы запускаете тесты в обоих режимах. Заранее спасибо!

ответ

1
  • в-контейнер: использования для белой коробки, тестирование интеграции
  • , как-клиент: использования для черного ящика, функционального тестирование

т.е. для UI/функционального тестирования (» поскольку «роль« клиента », использующего приложение в производстве, использует режим as-client с @RunAsClient. Для истинного тестирования интеграции (тестирование зависимостей между классами, где вам нужны внутренние знания «белого ящика» о самом приложении), используя режим in-container.

В обоих случаях ShrinkWrap и Arquillian разворачивают ваш архив в памяти (JAR/WAR/EAR) непосредственно в сконфигурированный контейнер (через JBoss-доморощенный потоковый протокол), однако, когда тесты выполняются в разных режимах, у них есть другой доступ к контейнеру в зависимости от режима тестирования.

+0

Я понимаю разницу между белым ящиком и тестированием черных ящиков, но я также не совсем понимаю его при тестировании режима клиента. означает ли это, что сжатый архив в режиме клиента не разворачивается в одно и то же приложение под тестированием, а развертывается в отдельное приложение, так что существует конфигурация типа клиент/сервер? если в клиентском режиме архив shrinkwrap также развертывается в тестируемом приложении, то я до сих пор не вижу разницы между этими двумя режимами. :( – dragonsfire