Статьи

Модульное тестирование приложения ADF с использованием JUnit

JUnit — это пакет модульного тестирования для языка Java, который можно использовать для тестирования приложения Oracle ADF, так как ADF построен поверх инфраструктуры J2EE. Модульное тестирование в основном представляет собой процесс проверки самого маленького тестируемого модуля на соответствие определенным критериям тестирования. Здесь я собираюсь проиллюстрировать, как мы можем установить и использовать JUnit в JDeveloper 12.2.1.3 для тестирования приложения ADF.

JDeveloper 12.2.1.3 поставляется с расширением JUnit, поэтому нет необходимости устанавливать его отдельно. Давайте начнем с создания веб-приложения Fusion в JDeveloper IDE. Здесь я беру таблицу отделов схемы HR по умолчанию, чтобы подготовить модель для приложения ADF.

Приложение ADF

Следующим шагом является создание нового проекта для проведения модульных тестов, чтобы все приложение не выглядело двусмысленным. Щелкните правой кнопкой мыши имя приложения и выберите « Создать» -> «Из галереи» -> «Основные» -> «Проекты» -> «Java Project».  

Приложение ADF

Введите название для этого проекта и нажмите кнопку Готово .

Приложение ADF

Теперь следующим шагом является создание Test Suite для бизнес-компонентов, а перед этим мы должны знать некоторую терминологию, которая используется в модульном тестировании.

Test Suite — группа тестовых случаев

Test Fixture — класс для обработки длительных тестовых наборов и сохранения состояния нескольких тестовых наборов.

Аспект — проверить результат теста на соответствие ожидаемому результату.

Теперь, чтобы открыть мастер тестов, щелкните правой кнопкой мыши новый проект и выберите « Создать» -> «Из галереи» -> «Основные» -> «Юнит-тесты» -> «Набор тестов для бизнес-компонентов ADF».

Приложение ADF

Нажмите на кнопку ОК и настройте набор тестов. Вы можете видеть, что здесь я выбрал проект Model и прикладной модуль DeptAm для тестирования. Вам также нужно выбрать конфигурацию для подключения к базе данных, и здесь я выбрал DeptAMLocal.

Приложение ADF

Нажмите кнопку « Далее» и увидите, что этот мастер сгенерирует класс Test Suite и класс Test Fixture. Этот мастер также сгенерирует отдельные классы модульных тестов для каждого объекта представления в приложении.

Приложение ADF

Теперь нажмите на кнопку Готово , и вы можете в новом проекте создать все файлы.

DeptAmFixture.java — Класс тестового приспособления

AllDeptAMTests.java — Класс тестового пакета

DepartmentsVO1VOTest.java — Класс модульного тестирования для отделов ViewObject

Приложение ADF

Теперь откройте класс DepartmentsVO1VOTest.java и посмотрите на контрольный пример по умолчанию, который проверяет, что объект представления Department не должен быть нулевым.

Здесь вы можете увидеть аннотацию @Test , это означает, что этот java-метод является модульным тестом и после выполнения теста assert используется для проверки результата теста.

01
02
03
04
05
06
07
08
09
10
11
12
13
@Test
public void testAccess() {
    ViewObject view = fixture1.getApplicationModule().findViewObject("DepartmentsVO1");
    assertNotNull(view);
}
 
@Before
public void setUp() {
}
 
@After
public void tearDown() {
}

Чтобы проверить этот контрольный пример по умолчанию, щелкните правой кнопкой мыши класс тестового набора и выберите «Выполнить». Вы можете видеть, что модульный тест успешно выполнен.

Приложение ADF

Следующим шагом является создание некоторых собственных модульных тестов. Я создал этот модульный тест, который проверяет, что идентификатор отдела не должен иметь значение NULL во вновь создаваемой строке.

01
02
03
04
05
06
07
08
09
10
@Test
public void checkDeptIdNotNull() {
    ViewObject deptVo = fixture1.getApplicationModule().findViewObject("DepartmentsVO1");
    Row newRow = deptVo.createRow();
 
    newRow.setAttribute("DepartmentId", 222);
    newRow.setAttribute("DepartmentName", "Testing");
 
    assertNotNull("DepartmentId should not be null", newRow.getAttribute("DepartmentId"));
}

Итак, в приведенном выше коде я создал новую строку в объекте просмотра «Отделы» и установил 222 в «Идентификатор отдела». Теперь запустите этот тест.

Приложение ADF

Здесь вы видите, что тест успешно пройден, потому что Идентификатор отдела не равен нулю. Это здорово. Теперь прокомментируйте эту строку в коде

//newRow.setAttribute( ОрганизацииDepartmentId ”, 222);

и запустите тест снова

Приложение ADF

Обратите внимание, что проверка не пройдена с помощью AssertionError, так как на этот раз идентификатор отдела равен нулю. Вот как мы можем написать наши собственные модульные тесты для проверки.

Здесь я пишу еще один контрольный пример, чтобы проверить, есть ли отдел в базе данных или нет. Я передаю 1990 год как идентификатор отдела, которого нет в базе данных.

01
02
03
04
05
06
07
08
09
10
11
@Test
public void findDepartment() {
    ViewObject deptVo = fixture1.getApplicationModule().findViewObject("DepartmentsVO1");
    int deptId = 1990;
 
    Row row[] = deptVo.findByKey(new Key(new Object[] { deptId }), 1);
    Integer count = row.length;
    //assertTrue fails when second parameter evaluates to "false"
    assertTrue("Department Not Found", count.compareTo(0) == 1);
 
}

Посмотрим результат

Приложение ADF

Вот как мы настраиваем и используем JUnit в приложении Oracle ADF для модульного тестирования.

Опубликовано на Java Code Geeks с разрешения Ашиша Авастхи, партнера нашей программы JCG. Смотрите оригинальную статью здесь: модульное тестирование приложения ADF с использованием JUnit

Мнения, высказанные участниками Java Code Geeks, являются их собственными.