<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
·········xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"
·········xsi: schemaLocation="http://maven.apache.org/POM/4.0.0
··················http://maven.apache.org/xsd/maven-4.0.0.xsd">············
··<modelVersion>4.0.0</modelVersion>
··<parent>
····<groupId>org.agoncal.book.javaee7</groupId>
····<artifactId>chapter02</artifactId>
····<version>1.0</version>
··</parent>
··<groupId>org.agoncal.book.javaee7.chapter02</groupId>
··<artifactId>chapter02-putting-together</artifactId>
··<version>1.0</version>
··<dependencies>
····<dependency>
······<groupId>org.jboss.weld.se</groupId>
······<artifactId>weld-se</artifactId>
······<version>2.0.0</version>
····</dependency>
····<dependency>
······<groupId>junit</groupId>
······<artifactId>junit</artifactId>
······<version>4.11</version>
······<scope>test</scope>
····</dependency>
··</dependencies>
··<build>
····<plugins>
······<plugin>
········<groupId>org.apache.maven.plugins</groupId>
········<artifactId>maven-compiler-plugin</artifactId>
········<version>2.5.1</version>
········<configuration>
··········<source>1.7</source>
··········<target>1.7</target>
········</configuration>
······</plugin>
······<plugin>
········<groupId>org.codehaus.mojo</groupId>
········<artifactId>exec-maven-plugin</artifactId>
········<version>1.2.1</version>
········<executions>
··········<execution>
············<goals>
··············<goal>java</goal>
············</goals>
············<configuration>
··············<mainClass>org.agoncal.book.javaee7.chapter02.Main</mainClass>
············</configuration>
··········</execution>
········</executions>
······</plugin>
······<plugin>
········<groupId>org.apache.maven.plugins</groupId>
········<artifactId>maven-failsafe-plugin</artifactId>
········<version>2.12.4</version>
········<executions>
··········<execution>
············<id>integration-test</id>
············<goals>
··············<goal>integration-test</goal>
··············<goal>verify</goal>
············</goals>
··········</execution>
········</executions>
······</plugin>
····</plugins>
··</build>
</project>
Для компиляции классов откройте командную строку в корневом каталоге, содержащем файл 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).
public class BookServiceIT {
··@Test
··public void shouldCheckNumberIsMOCK () {
····Weld weld = new Weld();
····WeldContainer container = weld.initialize();
····BookService bookService =