Arquillian:快速入門指南
此功能僅在 Ultimate 版本中得到支持。
本指南顯示了用于編寫和運行 Arquillian 測試的主要 IntelliJ IDEA 功能。
在你開始使用本指南前,請確保您的計算機上安裝了以下軟件:
- IntelliJ IDEA ULTIMATE 版。同時檢查JBoss Arquillian支持插件是否已啟用。
- Java SE 開發(fā)工具包(JDK),版本8,下載 Oracle JDK。
- GlassFish 服務器,版本4,服務器將用作托管的 Arquillian 容器,下載 GlassFish。
您還應該下載javax-inject.jar。在開發(fā)我們的示例測試類時,該文件將用作庫。
使用Arquillian JUnit支持創(chuàng)建項目
- 在“歡迎(Welcome)”界面上單擊“創(chuàng)建新項目(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),然后單擊“完成”。
項目創(chuàng)建完成后,您會在項目工具窗口中看到與此類似的內容。
(要為現(xiàn)有項目添加 Arquillian JUnit 支持:在“項目(Project)”工具窗口中,右鍵單擊您的項目或模塊文件夾,然后選擇“添加框架支持(Add Framework Support)”,然后在打開的對話框中選擇 Arquillian JUnit 復選框。
創(chuàng)建一個類
現(xiàn)在我們要創(chuàng)建一個我們要測試的類。讓類名稱為 com.example.hello.Greeter。
- 在“項目(Project)”工具窗口中,右鍵單擊該 src 文件夾,指向“新建(New)”并選擇 Java Class。
- 在打開的“創(chuàng)建新類(Create New Class)”對話框中,在 Name 字段中鍵入 com.example.hello.Greeter,然后按 Enter。包 com.example.hello 和類Greeter 都顯示在 Project 工具窗口中。
與此同時,該文件 Greeter.java將在編輯器中打開。
為Greeter類開發(fā)代碼
以下是該 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 作為一個庫。
- 在項目的根文件夾中,創(chuàng)建文件夾 lib (新建|目錄(New | Directory))并復制 javax-inject.jar 到該文件夾??中。
- 打開“項目結構(Project Structure)”對話框(Ctrl+Shift+Alt+S)并選擇庫。
- 單擊
,在打開的對話框中選擇 Java 和 javax-inject.jar。
- 在 Choose Modules 對話框中,單擊“OK”。
- 在“項目結構(Project Structure)”對話框中單擊“確定”。
為測試來源創(chuàng)建一個文件夾
- 在項目的根文件夾中,創(chuàng)建 test 文件夾。
- 用鼠標右鍵單擊該文件夾,指向標記目錄另存并選擇測試源根目錄。
創(chuàng)建一個測試類
- 在編輯器中,將光標放在類(Greeter)的名稱中。
- 點擊燈泡
(Alt+Enter)并選擇“創(chuàng)建測試(Create Test)”。
- 在打開的“創(chuàng)建測試(Create Test)”對話框中,從測試庫列表中選擇 Arquillian JUnit4。在“創(chuàng)建測試方法(Create test methods for)”下,選擇不返回值的方法(greet),點擊“確定”。
“項目(Project)”工具窗口中顯示新的測試類。
與此同時,該 GreeterTest.java 文件將在編輯器中打開。
測試類的初始內容由相應的模板定義。您可以在“設置/首選項(Settings / Preferences)”對話框(按下 Ctrl+Alt+S,選擇:編輯器|文件和代碼模板(Editor | File and Code Templates))的“文件和代碼模板(File and Code Templates)”頁面的“代碼(Code)”選項卡上編輯該模板。
完成GreteerTest類的代碼
這是測試類在最終狀態(tài)下的代碼:
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);
}
}
- 要插入適當?shù)?import 語句 @Inject,請鍵入 @Inj 并選擇 @Inject(javax.inject)。
- 通過復制添加剩余的代碼。
創(chuàng)建運行測試的運行配置
- 在左側 public class GreeterTest,點擊
并選擇“運行'GreeterTest'(Run 'GreeterTest')”。
- 在打開的“編輯配置(Edit configuration)”對話框中,單擊“配置(Configure)”。
- 在 Arquillian Containers 對話框中,單擊
,指向 Embedded,并選擇 GlassFish Embedded 3.1。(我們將開始在嵌入式容器中運行測試。)
- 在編輯配置對話框中,選擇 GlassFish Embedded 3.1。
在嵌入式容器中運行測試
- 在“編輯配置(Edit configuration)”對話框中,單擊“運行(Run)”。在運行工具窗口打開,一段時間后,測試結果顯示在那里。
- 點擊
關閉“運行(Run)”工具窗口。
編輯運行配置:添加托管容器
現(xiàn)在讓我們更改我們的運行配置,以便它可以用于在托管容器中運行測試。
- 點擊運行配置選擇器并選擇“編輯配置(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)”復選框,然后單擊“確定”。
在這一步,你的 Arquillian 容器對話框應該是這樣的:
點擊“確定”。
- 在“運行/調試配置(Run/Debug Configurations)”對話框中,選擇“GlassFish托管(GlassFish Managed)”,然后單擊“確定”。
創(chuàng)建arquillian.xml配置文件
為了能夠在托管容器中運行 Arquillian 測試,容器適配器需要知道容器位置。所以讓我們用必要的信息創(chuàng)建 arquillian.xml 配置文件。
- 在項目的根文件夾中,創(chuàng)建文件夾 test-resources。
- 右鍵單擊新文件夾,指向“將目錄標記為(Mark Directory As)”,然后選擇“測試資源根目錄(Test Resources Root)”。
- 在 test-resources 文件夾中,創(chuàng)建一個新文件 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>
使用 GlassFish 服務器安裝文件夾的實際路徑代替 C:GlassFishglassfish4。
在托管容器中運行測試
- 在運行配置選擇器的右側,單擊
。
將打開“運行(Run)”工具窗口,測試結果顯示在那里。
- 關閉工具窗口(
)。
修改arquillian.xml
有時,您需要將測試部署到已運行的容器。在這種情況下,您可以稍微更改容器配置文件并繼續(xù)使用托管容器適配器。
將以下內容添加到 arquillian.xml:
<property name="allowConnectingToRunningServer">true</property>
運行測試:部署到正在運行的服務器
- 啟動 GlassFish 服務器:選擇 GlassFish 并單擊
。
當服務器啟動時,您會在運行工具窗口中看到類似這樣的內容。
- 選擇 GlassFish Managed:GreeterTest 并單擊
。
一段時間后,測試結果顯示在運行工具窗口中。
更多建議: