Arquillian快速入门指南
Arquillian:快速入门指南
此功能仅在 Ultimate 版本中得到支持。
本指南显示了用于编写和运行 Arquillian 测试的主要 IntelliJ IDEA 功能。
在你开始使用本指南前,请确保您的计算机上安装了以下软件:
- IntelliJ IDEA ULTIMATE 版。同时检查JBoss Arquillian支持插件是否已启用。
- Java SE 开发工具包(JDK),版本8,下载 Oracle JDK。
- GlassFish 服务器,版本4,服务器将用作托管的 Arquillian 容器,下载 GlassFish。
您还应该下载javax-inject.jar。在开发我们的示例测试类时,该文件将用作库。
使用Arquillian JUnit支持创建项目
- 在“欢迎(Welcome)”界面上单击“创建新项目(Create New Project)”,或选择:文件| 新增| 项目(File | New | Project)。将打开“新建项目(New Project)”向导。
- 在左侧窗格中,选择 Java Enterprise。
- 如果您要使用的 JDK 已经在 IntelliJ IDEA 中定义,则请从 Project SDK 列表中选择该 JDK 。否则,请单击“新建(New)”,选择 JDK,然后在打开的对话框中选择 JDK 安装文件夹。
- 如果尚未在 IntelliJ IDEA 中定义 GlassFish,请单击 Application Server 字段右侧的“新建(New)”并选择 Glassfish Server。在 Glassfish 服务器对话框中,指定GlassFish 服务器安装目录。
- 在“其他库和框架(Additional Libraries and Frameworks)”下,选择Arquillian JUnit复选框。
- 指定新项目的名称(例如HelloArquillian),然后单击“完成”。
(要为现有项目添加 Arquillian JUnit 支持:在“项目(Project)”工具窗口中,右键单击您的项目或模块文件夹,然后选择“添加框架支持(Add Framework Support)”,然后在打开的对话框中选择 Arquillian JUnit 复选框。
创建一个类
现在我们要创建一个我们要测试的类。让类名称为 com.example.hello.Greeter。
- 在“项目(Project)”工具窗口中,右键单击该 src 文件夹,指向“新建(New)”并选择 Java Class。
- 在打开的“创建新类(Create New Class)”对话框中,在 Name 字段中键入 com.example.hello.Greeter,然后按 Enter。包 com.example.hello 和类Greeter 都显示在 Project 工具窗口中。
为Greeter类开发代码
以下是该 Greeter 类的代码。
package com.example.hello;
import java.io.PrintStream;
public class Greeter {
public void greet(PrintStream to, String name) {
to.println(createGreeting(name));
}
public String createGreeting(String name) {
return "Hello, " + name + "!";
}
}
将代码复制到编辑器中:
将javax-inject.jar定义为库
为了能够编写和运行我们的 Arquillian 测试,我们需要将 javax-inject.jar 作为一个库。
- 在项目的根文件夹中,创建文件夹 lib (新建|目录(New | Directory))并复制 javax-inject.jar 到该文件夹中。
- 打开“项目结构(Project Structure)”对话框(Ctrl+Shift+Alt+S)并选择库。
- 单击 ,在打开的对话框中选择 Java 和 javax-inject.jar。
- 在 Choose Modules 对话框中,单击“OK”。
- 在“项目结构(Project Structure)”对话框中单击“确定”。
为测试来源创建一个文件夹
- 在项目的根文件夹中,创建 test 文件夹。
- 用鼠标右键单击该文件夹,指向标记目录另存并选择测试源根目录。
创建一个测试类
- 在编辑器中,将光标放在类(Greeter)的名称中。
- 点击灯泡
(Alt+Enter)并选择“创建测试(Create Test)”。
- 在打开的“创建测试(Create Test)”对话框中,从测试库列表中选择 Arquillian JUnit4。在“创建测试方法(Create test methods for)”下,选择不返回值的方法(greet),点击“确定”。
完成GreteerTest类的代码
这是测试类在最终状态下的代码:
package com.example.hello;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.inject.Inject;
import static org.junit.Assert.*;
@RunWith(Arquillian.class)
public class GreeterTest {
@Deployment
public static JavaArchive createDeployment() {
return ShrinkWrap.create(JavaArchive.class)
.addClass(Greeter.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
@Inject
Greeter greeter;
@Test
public void greet() throws Exception {
String name="Arquillian";
Assert.assertEquals("Hello, Arquillian!", greeter.createGreeting(name));
greeter.greet(System.out, name);
}
}
- 要插入适当的 import 语句 @Inject,请键入 @Inj 并选择 @Inject(javax.inject)。
- 通过复制添加剩余的代码。
创建运行测试的运行配置
- 在左侧 public class GreeterTest,点击
并选择“运行'GreeterTest'(Run 'GreeterTest')”。
- 在打开的“编辑配置(Edit configuration)”对话框中,单击“配置(Configure)”。
- 在 Arquillian Containers 对话框中,单击
,指向 Embedded,并选择 GlassFish Embedded 3.1。(我们将开始在嵌入式容器中运行测试。)
- 在编辑配置对话框中,选择 GlassFish Embedded 3.1。
在嵌入式容器中运行测试
- 在“编辑配置(Edit configuration)”对话框中,单击“运行(Run)”。在运行工具窗口打开,一段时间后,测试结果显示在那里。
- 点击 关闭“运行(Run)”工具窗口。
编辑运行配置:添加托管容器
现在让我们更改我们的运行配置,以便它可以用于在托管容器中运行测试。
- 点击运行配置选择器并选择“编辑配置(Edit Configurations)”。
- 在运“行/调试配置(Run/Debug Configurations)”对话框中,单击“配置(Configure)”。
- 在 Arquillian 容器对话框中,单击 并选择“手动容器配置(Manual container configuration)”。
- 更改配置的名称(例如 GlassFish Managed)。
- 在 Dependencies 下,单击 并选择 Add maven dependency。
- 在“从Maven存储库下载库(Download Library From Maven Repository)”对话框中,键入 arquillian-glassfish-managed-3.1 并单击
。然后从列表中选择 org.jboss.arquillian.container:arquillian-glassfish-managed-3.1:1.0.0.CR4。选择“下载到(Download to)”复选框,然后单击“确定”。
- 在“运行/调试配置(Run/Debug Configurations)”对话框中,选择“GlassFish托管(GlassFish Managed)”,然后单击“确定”。
创建arquillian.xml配置文件
为了能够在托管容器中运行 Arquillian 测试,容器适配器需要知道容器位置。所以让我们用必要的信息创建 arquillian.xml 配置文件。
- 在项目的根文件夹中,创建文件夹 test-resources。
- 右键单击新文件夹,指向“将目录标记为(Mark Directory As)”,然后选择“测试资源根目录(Test Resources Root)”。
- 在 test-resources 文件夹中,创建一个新文件 arquillian.xml。
- 将以下内容复制到文件中:
<?xml version="1.0"?> <arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://jboss.org/schema/arquillian" xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> <container qualifier="glassfish" default="true"> <configuration> <property name="glassFishHome">C:\GlassFish\glassfish4</property> </configuration> </container> </arquillian>
在托管容器中运行测试
- 在运行配置选择器的右侧,单击
。
- 关闭工具窗口( )。
修改arquillian.xml
有时,您需要将测试部署到已运行的容器。在这种情况下,您可以稍微更改容器配置文件并继续使用托管容器适配器。
将以下内容添加到 arquillian.xml:
<property name="allowConnectingToRunningServer">true</property>
运行测试:部署到正在运行的服务器
- 启动 GlassFish 服务器:选择 GlassFish 并单击
。
- 选择 GlassFish Managed:GreeterTest 并单击
。
一段时间后,测试结果显示在运行工具窗口中。