Читаем Изучаем Java EE 7 полностью

··············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

Запуск класса Main

Благодаря 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'}

Написание класса BookServiceIT

Листинг 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();

··}

}

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

Интеграционный тест 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

··

Запуск интеграционного теста

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

$ mvn integration-test

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

Резюме

Перейти на страницу:

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

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT