Тестирование приложений EJB 3.1 со встроенными контейнерами - PullRequest
3 голосов
/ 23 октября 2011

Можно ли вызвать тестирование bean-компонента или метода bean-компонента (или модуля) после его развертывания во встроенном контейнере как «Unit Testing». ИМО, я чувствую, что это возможно, потому что,

  1. Мы все еще собираемся тестировать только один модуль, может быть один EJB или его метод, который не зависит от какого-либо другого кода приложения от любого другого разработчика. Но, конечно, он берет сервисы из встроенных контейнеров.
  2. ИМХО, мы можем считать эти встроенные контейнеры всего лишь несколькими банками, которые предоставляют некоторую услугу, так же как JRE предоставляет обычное приложение java SE. Итак, если мы рассмотрим тестирование Java-класса SE или метода в JRE как модульное тестирование, то, я думаю, мы также можем назвать вышеописанный сценарий как модульное тестирование.

Я согласен, что по этой теме можно обсуждать довольно много, и я также согласен с тем, что то, что я упомянул выше, может быть неверным. Поэтому я хотел бы услышать от вас всех, правильно ли я считаю или что-то упускаю. Насколько я вижу, не существует единого и надежного определения для модульного тестирования. Если таковые имеются, пожалуйста, предоставьте мне несколько советов, и это очень поможет мне.

Большое спасибо за вашу поддержку. - Ганеса ...

1 Ответ

2 голосов
/ 23 октября 2011

Я думаю, что ответ полностью зависит от того, что вы делаете в своих тестах.

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

Примером для меня будет использование Гиперзвуковой базы данных для тестирования DAO. Насколько мне известно, невозможно протестировать JPA-запросы без БД в памяти, и они являются самой маленькой частью кода метода DAO.

Однако, если вы используете встроенный контейнер для тестирования метода EJB, и они взаимодействуют с другими внедренными EJB или POJO (например, через CDI), тогда я рассмотрел бы это интеграционное тестирование. Теперь вы тестируете не самый маленький бит кода, а что-то еще (другие сотрудничающие EJB-компоненты или POJO), и вам нужно будет высмеивать коллабораторов, чтобы действительно протестировать наименьший фрагмент кода EJB-компонента.

...