Arquillian 使用指南

安装 Arquillian 插件到 Forge 环境中

使用这个插件添加 Arquillian 基础设施到一个基于 Maven 的Java 项目中

生成组件和相应的 Arquillian 测试

无需手动修改在不同容器中运行 Arquillian 测试

你将完成很多与 快速入门教程 描述中相同的步骤, 不同是这里把一些琐碎的事留给 Forge 来处理。本教程定于快速阅读,就是让你能够更快的入门。

预备知识

本教程假定你已经安装好了 JBoss Forge . 安装 Forge 并不麻烦,请参考 “快速入门教程” 或者 官方的 Forge 文档 ,下载和安装。你的机器上还需要安装 JDK 1.6 或更高版本。

创建项目

在使用 Arquillian之前,我们要先创建一个项目。如果你还没创建,请使用下面的 Forge 命令来创建一个简单的 Java EE 6 项目,包含 JPA 支持。

$ new-project --named arquillian-demo --topLevelPackage demo ? Use [/Users/paul/arquillian-demo] as project directory? [Y/n] ***SUCCESS*** Created project [arquillian-demo] in new working directory [/Users/paul/arquillian-demo] Wrote /Users/paul/arquillian-demo Wrote /Users/paul/arquillian-demo/pom.xml Wrote /Users/paul/arquillian-demo/src/main/java Wrote /Users/paul/arquillian-demo/src/test/java Wrote /Users/paul/arquillian-demo/src/main/resources Wrote /Users/paul/arquillian-demo/src/test/resources Wrote /Users/paul/arquillian-demo/src/main/resources/META-INF/forge.xml

新项目已经创建,下一步,我们需要添加一些代码用于测试。下面使用 Forge 来创建一个 CDI Bean。

首先,我们使用 “beans” 插件来安装 CDI 到项目中。

$ beans setup ***SUCCESS*** Installed [forge.spec.cdi] successfully. ? Do you want to install CDI APIs? [y/N] Wrote /Users/paul/arquillian-demo/src/main/resources/META-INF/beans.xml

然后创新建一个 Bean。

$ beans new-bean --type demo.MySimpleBean --scoped DEPENDENT Picked up type <JavaResource>: demo.MySimpleBean Wrote /Users/paul/arquillian-demo/src/main/java/demo/MySimpleBean.java

项目已经准备就绪,下面进行测试。

入门

设置 Arquillian 简单,你可能已经 快速入门教程 中读过。在 pom.xml 中配置一个新的 Arquillian 容器需要大量复制和粘贴工作。Forge 可以用一个命令来完成这些工作。

首先你需要安装 Arquillian 插件。

$ forge install-plugin arquillian

现在我们需要设置好 Arquillian 和容器配置。这里使用 JBoss AS7。

$ arquillian setup --container JBOSS_AS_7_MANAGED

Forge 会提示你要使用的 JUnit, Arquillian 和 JBoss AS7 版本。选择使用最新版本。如果你还没下载 JBoss AS7,Forge 甚至也可以帮你自动完成。

就这样,Arquillian 配置完毕。你可以自行查看一下 pom.xml 文件中生成的 dependenices 和 profile,Forge 还在 src/test/resources 创建了一个 arquillian.xml 文件。

编写测试

现在开始写一个测试。再次使用 Forge 帮你完成。

$ arquillian create-test --class demo.MySimpleBean.java Picked up type <JavaResource>: demo.MySimpleBeanTest Wrote /Users/paul/arquillian-demo/src/test/java/demo/MySimpleBeanTest.java

一个包含部署和测试方法的新测试类会添加到项目中。它使用 CDI 注入了要测试的类,这样能够立即验证测试是否能够在容器中运行。如果你的 IDE 不能找到 imports,请确认前面创建的 Maven profile 是否已经启用。你可以从 IDE,或者 Maven 命令行,或者 Forge 中直接运行测试。

$ build --profile arq-jbossas-7-managed

恭喜你! 你已经使用 Arquillian 和 Forge 得到第一个 (greenbar) 绿条 !

下面尝试测试 JPA 代码。

测试 JPA

在开始写使用 Java Persistence API (JPA) 的测试之前,需要先配置 JPA。我们将会创建一个 Entity,然后写一个简单的 Data Access Object,这就是我们将要进行测试的类。

$ persistence setup --provider HIBERNATE --container JBOSS_AS7 ***SUCCESS*** Installed [forge.spec.jpa] successfully. ***INFO*** Setting transaction-type="JTA" ***INFO*** Using example data source [java:jboss/datasources/ExampleDS] Warning: The encoding 'UTF-8' is not supported by the Java runtime. ? The JPA provider [HIBERNATE], also supplies extended APIs. Install these as well? [y/N] [false] Wrote /Users/paul/arquillian-demo/pom.xml Wrote /Users/paul/arquillian-demo/src/main/resources/META-INF/persistence.xml

现在开始创建 Entity。

$ entity --named Language --package demo.entities Created @Entity [demo.entities.Language] Picked up type <JavaResource>: demo.entities.Language Wrote /Users/paul/arquillian-demo/src/main/java/demo/entities/Language.java

然后向这个 Entity 中添加一些属性。

$ field string --named name Added field to demo.entities.Language: @Column private String name; Wrote /Users/paul/arquillian-demo/src/main/java/demo/entities/Language.java

你必须复制下面这个文件到你的项目中。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/19427.html