Arquillian快速入門指南

2018-03-29 09:08 更新

Arquillian:快速入門指南

此功能僅在 Ultimate 版本中得到支持。

本指南顯示了用于編寫和運行 Arquillian 測試的主要 IntelliJ IDEA 功能。

在你開始使用本指南前,請確保您的計算機上安裝了以下軟件:

  • IntelliJ IDEA ULTIMATE 版。同時檢查JBoss Arquillian支持插件是否已啟用。
  • Java SE 開發(fā)工具包(JDK),版本8,下載 Oracle JDK。
  • GlassFish 服務(wù)器,版本4,服務(wù)器將用作托管的 Arquillian 容器,下載 GlassFish。

您還應(yīng)該下載javax-inject.jar。在開發(fā)我們的示例測試類時,該文件將用作庫。

使用Arquillian JUnit支持創(chuàng)建項目

  1. 在“歡迎(Welcome)”界面上單擊“創(chuàng)建新項目(Create New Project)”,或選擇:文件| 新增| 項目(File | New | Project)。將打開“新建項目(New Project)”向?qū)А?/li>
  2. 在左側(cè)窗格中,選擇 Java Enterprise。
  3. 如果您要使用的 JDK 已經(jīng)在 IntelliJ IDEA 中定義,則請從 Project SDK 列表中選擇該 JDK 。否則,請單擊“新建(New)”,選擇 JDK,然后在打開的對話框中選擇 JDK 安裝文件夾。 
  4. 如果尚未在 IntelliJ IDEA 中定義 GlassFish,請單擊 Application Server 字段右側(cè)的“新建(New)”并選擇 Glassfish Server。在 Glassfish 服務(wù)器對話框中,指定GlassFish 服務(wù)器安裝目錄。 
  5. 在“其他庫和框架(Additional Libraries and Frameworks)”下,選擇Arquillian JUnit復(fù)選框。
    Arquillian快速入門指南
    點擊“下一步”。
  6. 指定新項目的名稱(例如HelloArquillian),然后單擊“完成”。
    Arquillian快速入門指南
    項目創(chuàng)建完成后,您會在項目工具窗口中看到與此類似的內(nèi)容。
    Arquillian快速入門指南

(要為現(xiàn)有項目添加 Arquillian JUnit 支持:在“項目(Project)”工具窗口中,右鍵單擊您的項目或模塊文件夾,然后選擇“添加框架支持(Add Framework Support)”,然后在打開的對話框中選擇 Arquillian JUnit 復(fù)選框。

創(chuàng)建一個類

現(xiàn)在我們要創(chuàng)建一個我們要測試的類。讓類名稱為 com.example.hello.Greeter。

  1. 在“項目(Project)”工具窗口中,右鍵單擊該 src 文件夾,指向“新建(New)”并選擇 Java Class。
  2. 在打開的“創(chuàng)建新類(Create New Class)”對話框中,在 Name 字段中鍵入 com.example.hello.Greeter,然后按 Enter。包 com.example.hello 和類Greeter 都顯示在 Project 工具窗口中。
    Arquillian快速入門指南
    與此同時,該文件 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 + "!";
    }
}

將代碼復(fù)制到編輯器中:

Greeter類開發(fā)代碼

將javax-inject.jar定義為庫

為了能夠編寫和運行我們的 Arquillian 測試,我們需要將 javax-inject.jar 作為一個庫。

  1. 在項目的根文件夾中,創(chuàng)建文件夾 lib (新建|目錄(New | Directory))并復(fù)制 javax-inject.jar 到該文件夾??中。
    Arquillian快速入門指南
  2. 打開“項目結(jié)構(gòu)(Project Structure)”對話框(Ctrl+Shift+Alt+S)并選擇庫。
  3. 單擊 ,在打開的對話框中選擇 Java 和 javax-inject.jar。
  4. 在 Choose Modules 對話框中,單擊“OK”。
    Arquillian快速入門指南
  5. 在“項目結(jié)構(gòu)(Project Structure)”對話框中單擊“確定”。

為測試來源創(chuàng)建一個文件夾

  1. 在項目的根文件夾中,創(chuàng)建 test 文件夾。
  2. 用鼠標(biāo)右鍵單擊該文件夾,指向標(biāo)記目錄另存并選擇測試源根目錄。
    Arquillian快速入門指南

創(chuàng)建一個測試類

  1. 在編輯器中,將光標(biāo)放在類(Greeter)的名稱中。
  2. 點擊燈泡 (Alt+Enter)并選擇“創(chuàng)建測試(Create Test)”。
    Arquillian快速入門指南
  3. 在打開的“創(chuàng)建測試(Create Test)”對話框中,從測試庫列表中選擇 Arquillian JUnit4。在“創(chuàng)建測試方法(Create test methods for)”下,選擇不返回值的方法(greet),點擊“確定”。 
    Arquillian快速入門指南
    “項目(Project)”工具窗口中顯示新的測試類。
    Arquillian快速入門指南
    與此同時,該 GreeterTest.java 文件將在編輯器中打開。
    Arquillian快速入門指南
    測試類的初始內(nèi)容由相應(yīng)的模板定義。您可以在“設(shè)置/首選項(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);
    }
}
  1. 要插入適當(dāng)?shù)?import 語句 @Inject,請鍵入 @Inj 并選擇 @Inject(javax.inject)。
    Arquillian快速入門指南
  2. 通過復(fù)制添加剩余的代碼。
    Arquillian快速入門指南

創(chuàng)建運行測試的運行配置

  1. 在左側(cè) public class GreeterTest,點擊 并選擇“運行'GreeterTest'(Run 'GreeterTest')”。
    Arquillian快速入門指南
  2. 在打開的“編輯配置(Edit configuration)”對話框中,單擊“配置(Configure)”。
    Arquillian快速入門指南
  3. 在 Arquillian Containers 對話框中,單擊 ,指向 Embedded,并選擇 GlassFish Embedded 3.1。(我們將開始在嵌入式容器中運行測試。)
    Arquillian快速入門指南
  4. 在編輯配置對話框中,選擇 GlassFish Embedded 3.1。
    Arquillian快速入門指南

在嵌入式容器中運行測試

  1. 在“編輯配置(Edit configuration)”對話框中,單擊“運行(Run)”。在運行工具窗口打開,一段時間后,測試結(jié)果顯示在那里。
    Arquillian快速入門指南
  2. 點擊 關(guān)閉“運行(Run)”工具窗口。

編輯運行配置:添加托管容器

現(xiàn)在讓我們更改我們的運行配置,以便它可以用于在托管容器中運行測試。

  1. 點擊運行配置選擇器并選擇“編輯配置(Edit Configurations)”。
    Arquillian快速入門指南
  2. 在運“行/調(diào)試配置(Run/Debug Configurations)”對話框中,單擊“配置(Configure)”。
    Arquillian快速入門指南
  3. 在 Arquillian 容器對話框中,單擊 并選擇“手動容器配置(Manual container configuration)”。
  4. 更改配置的名稱(例如 GlassFish Managed)。
  5. 在 Dependencies 下,單擊 并選擇 Add maven dependency。
  6. 在“從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)”復(fù)選框,然后單擊“確定”。
    Arquillian快速入門指南
    在這一步,你的 Arquillian 容器對話框應(yīng)該是這樣的:
    Arquillian快速入門指南
    點擊“確定”。
  7. 在“運行/調(diào)試配置(Run/Debug Configurations)”對話框中,選擇“GlassFish托管(GlassFish Managed)”,然后單擊“確定”。
    Arquillian快速入門指南

創(chuàng)建arquillian.xml配置文件

為了能夠在托管容器中運行 Arquillian 測試,容器適配器需要知道容器位置。所以讓我們用必要的信息創(chuàng)建 arquillian.xml 配置文件。

  1. 在項目的根文件夾中,創(chuàng)建文件夾 test-resources。
  2. 右鍵單擊新文件夾,指向“將目錄標(biāo)記為(Mark Directory As)”,然后選擇“測試資源根目錄(Test Resources Root)”。
  3. 在 test-resources 文件夾中,創(chuàng)建一個新文件 arquillian.xml。
    Arquillian快速入門指南
  4. 將以下內(nèi)容復(fù)制到文件中:
    <?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快速入門指南
    使用 GlassFish 服務(wù)器安裝文件夾的實際路徑代替 C:GlassFishglassfish4。

在托管容器中運行測試

  1. 在運行配置選擇器的右側(cè),單擊 。
    Arquillian快速入門指南
    將打開“運行(Run)”工具窗口,測試結(jié)果顯示在那里。
    Arquillian快速入門指南
  2. 關(guān)閉工具窗口( 關(guān))。

修改arquillian.xml

有時,您需要將測試部署到已運行的容器。在這種情況下,您可以稍微更改容器配置文件并繼續(xù)使用托管容器適配器。

將以下內(nèi)容添加到 arquillian.xml:

<property name="allowConnectingToRunningServer">true</property>

Arquillian快速入門指南

運行測試:部署到正在運行的服務(wù)器

  1. 啟動 GlassFish 服務(wù)器:選擇 GlassFish 并單擊 。
    Arquillian快速入門指南
    當(dāng)服務(wù)器啟動時,您會在運行工具窗口中看到類似這樣的內(nèi)容。
    Arquillian快速入門指南
  2. 選擇 GlassFish Managed:GreeterTest 并單擊
    Arquillian快速入門指南
    一段時間后,測試結(jié)果顯示在運行工具窗口中。
    Arquillian快速入門指南
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號