@Stateless
public class StandaloneBean {
private static final String message = "Greetings!";
public String returnMessage() {
return message;
}
}
Java Platform, Enterprise Edition (Java EE) 8 Учебник по Java EE |
Назад | Вперёд | Содержание |
Приложение standalone
демонстрирует, как создать объект встроенного контейнера Enterprise-бина в тестовом классе JUnit и вызвать бизнес-метод сессионного компонента.
Здесь рассматриваются следующие темы:
Тестирование бизнес-методов Enterprise-бина в модульном тесте позволяет разработчикам использовать бизнес-логику приложения отдельно от других уровней приложения, таких как уровень представления, без необходимости развёртывания приложения на сервере Java EE.
Пример standalone
имеет два основных компонента: StandaloneBean
, сессионный компонент без сохранения состояния и StandaloneBeanTest
, тестовый класс JUnit, который действует как клиент для StandaloneBean
с использованием встроенного контейнера.
StandaloneBean
— это простой сессионный компонент, представляющий локальное представление без интерфейса с одним бизнес-методом, returnMessage
, который возвращает «Greetings!» как String
:
@Stateless
public class StandaloneBean {
private static final String message = "Greetings!";
public String returnMessage() {
return message;
}
}
StandaloneBeanTest
вызывает StandaloneBean.returnMessage
и проверяет правильность возвращённого сообщения. Во-первых, встроенный объект контейнера и начальный контекст создаются в методе setUp
, который аннотируется org.junit.Before
, чтобы указать, что метод должен быть выполнен перед тестовыми методами:
@Before
public void setUp() {
ec = EJBContainer.createEJBContainer();
ctx = ec.getContext();
}
Метод testReturnMessage
, аннотированный org.junit.Test
, чтобы указать, что метод включает в себя модульный тест, получает ссылку на StandaloneBean
через Context
и вызывает StandaloneBean.returnMessage
. Результат сравнивается с ожидаемым результатом с использованием утверждения JUnit assertEquals
. Если строка, возвращённая из StandaloneBean.returnMessage
, равна "Greetings!" тест проходит:
@Test
public void testReturnMessage() throws Exception {
logger.info("Testing standalone.ejb.StandaloneBean.returnMessage()");
StandaloneBean instance = (StandaloneBean)
ctx.lookup("java:global/classes/StandaloneBean");
String expResult = "Greetings!";
String result = instance.returnMessage();
assertEquals(expResult, result);
}
Наконец, метод tearDown
, аннотированный org.junit.After
для указания того, что метод должен быть выполнен после выполнения всех модульных тестов, закрывает объект встроенного контейнера:
@After
public void tearDown() {
if (ec != null) {
ec.close();
}
}
Удостоверьтесь, чтобы GlassFish Server был запущен (см. Запуск и остановка сервера GlassFish).
В меню «Файл» выберите «Открыть проект».
В диалоговом окне «Открыть проект» перейдите к:
tut-install/examples/ejb
Выберите каталог standalone
и нажмите «Открыть проект».
На вкладке «Проекты» кликните правой кнопкой мыши standalone
и выберите Test.
Это выполнит тестовый класс JUnit StandaloneBeanTest
. На вкладке «Вывод» отображается ход теста и журнал вывода.
Удостоверьтесь, чтобы GlassFish Server был запущен (см. Запуск и остановка сервера GlassFish).
В окне терминала перейдите в:
tut-install/examples/ejb/standalone/
Введите следующую команду:
mvn install
Эта команда компилирует и упаковывает приложение в файл JAR и выполняет тестовый класс JUnit StandaloneBeanTest
.
Назад | Вперёд | Содержание |