··············org.agoncal.book.javaee7.chapter02.Main

············

··········

········

······

······

········org.apache.maven.plugins

········maven-failsafe-plugin

········2.12.4

········

··········

············integration-test

············

··············integration-test

··············verify

············

··········

········

······

····

··

Для компиляции классов откройте командную строку в корневом каталоге, содержащем файл pom.xml, и введите следующую команду Maven:

$ mvn compile

<p>Запуск класса Main</p>

Благодаря exec-maven-plugin, сконфигурированному в файле pom.xml в листинге 2.53, теперь мы можем запустить класс Main, определенный в листинге 2.51. Откройте командную строку в корневом каталоге, содержащем файл pom.xml, и введите следующую команду Maven:

$ mvn exec: java

После этого начнется выполнение класса Main, который использует BookService для создания Book. Благодаря внедрению Logger будет отображать следующие выходные данные:

Info: Сгенерирован ISBN: 13-84356-18643 41788

Book{title='H2G2', price=12.5, description='Интересная книга на тему высоких технологий', isbn='13-84356-18643 41788'}

<p>Написание класса BookServiceIT</p>

Листинг 2.54 показывает, как класс BookServiceIT тестирует компонент BookService. Он использует тот же API, специфичный для Weld, для начальной загрузки CDI в качестве класса Main, показанного в листинге 2.51. Как только вызывается BookService.createBook, интеграционный тест проверяет, чтобы сгенерированный номер начинался с "MOCK". Это происходит потому, что интеграционный тест использует альтернативу MockGenerator (вместо IsbnGenerator).

Листинг 2.54. Интеграционный тест BookServiceIT

public class BookServiceIT {

··@Test

··public void shouldCheckNumberIsMOCK () {

····Weld weld = new Weld();

····WeldContainer container = weld.initialize();

····BookService bookService = 

container.instance(). select(BookService.class). get();

····Book book = bookService.createBook("H2G2", 12.5f, "Интересная книга 

········································на тему высоких технологий");

····assertTrue(book.getNumber(). startsWith("MOCK"));

····weld.shutdown();

··}

}

<p>Активизация альтернатив и перехватчиков в файлах beans.xml для интеграционного тестирования</p>

Интеграционный тест BookServiceIT в листинге 2.54 требует, чтобы был активизирован MockGenerator. Для этого необходимо выделить отдельный файл beans.xml для тестирования (листинг 2.55) и активизации альтернатив (с тегом ). Если вы захотите увеличить объем журналов в тестовой среде, можете активизировать LoggingInterceptor в файле beans.xml.

Листинг 2.55. Активизация альтернатив и перехватчиков в файле beans.xml

·······xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"

·······xsi: schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 

·······http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"

·······version="1.1" bean-discovery-mode="all">

··

····org.agoncal.book.javaee7.chapter02.MockGenerator

··

··

····org.agoncal.book.javaee7.chapter02.LoggingInterceptor

··

<p>Запуск интеграционного теста</p>

Для выполнения интеграционного теста с помощью плагина Maven Failsafe (определенного в pom.xml в листинге 2.53) введите следующую команду Maven:

$ mvn integration-test

Класс BookServiceIT должен выполнить один успешный интеграционный тест. Вы также увидите несколько протоколов или регистраций входа в метод и выхода из него.

<p>Резюме</p>
Перейти на страницу:

Похожие книги