Arquillian快速入門(mén)指南

2018-03-29 09:08 更新

Arquillian:快速入門(mén)指南

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

本指南顯示了用于編寫(xiě)和運(yùn)行 Arquillian 測(cè)試的主要 IntelliJ IDEA 功能。

在你開(kāi)始使用本指南前,請(qǐng)確保您的計(jì)算機(jī)上安裝了以下軟件:

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

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

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

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

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

創(chuàng)建一個(gè)類(lèi)

現(xiàn)在我們要?jiǎng)?chuàng)建一個(gè)我們要測(cè)試的類(lèi)。讓類(lèi)名稱(chēng)為 com.example.hello.Greeter。

  1. 在“項(xiàng)目(Project)”工具窗口中,右鍵單擊該 src 文件夾,指向“新建(New)”并選擇 Java Class。
  2. 在打開(kāi)的“創(chuàng)建新類(lèi)(Create New Class)”對(duì)話(huà)框中,在 Name 字段中鍵入 com.example.hello.Greeter,然后按 Enter。包 com.example.hello 和類(lèi)Greeter 都顯示在 Project 工具窗口中。
    Arquillian快速入門(mén)指南
    與此同時(shí),該文件 Greeter.java將在編輯器中打開(kāi)。

為Greeter類(lèi)開(kāi)發(fā)代碼

以下是該 Greeter 類(lèi)的代碼。

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類(lèi)開(kāi)發(fā)代碼

將javax-inject.jar定義為庫(kù)

為了能夠編寫(xiě)和運(yùn)行我們的 Arquillian 測(cè)試,我們需要將 javax-inject.jar 作為一個(gè)庫(kù)。

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

為測(cè)試來(lái)源創(chuàng)建一個(gè)文件夾

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

創(chuàng)建一個(gè)測(cè)試類(lèi)

  1. 在編輯器中,將光標(biāo)放在類(lèi)(Greeter)的名稱(chēng)中。
  2. 點(diǎn)擊燈泡 (Alt+Enter)并選擇“創(chuàng)建測(cè)試(Create Test)”。
    Arquillian快速入門(mén)指南
  3. 在打開(kāi)的“創(chuàng)建測(cè)試(Create Test)”對(duì)話(huà)框中,從測(cè)試庫(kù)列表中選擇 Arquillian JUnit4。在“創(chuàng)建測(cè)試方法(Create test methods for)”下,選擇不返回值的方法(greet),點(diǎn)擊“確定”。 
    Arquillian快速入門(mén)指南
    “項(xiàng)目(Project)”工具窗口中顯示新的測(cè)試類(lèi)。
    Arquillian快速入門(mén)指南
    與此同時(shí),該 GreeterTest.java 文件將在編輯器中打開(kāi)。
    Arquillian快速入門(mén)指南
    測(cè)試類(lèi)的初始內(nèi)容由相應(yīng)的模板定義。您可以在“設(shè)置/首選項(xiàng)(Settings / Preferences)”對(duì)話(huà)框(按下 Ctrl+Alt+S,選擇:編輯器|文件和代碼模板(Editor | File and Code Templates))的“文件和代碼模板(File and Code Templates)”頁(yè)面的“代碼(Code)”選項(xiàng)卡上編輯該模板。

完成GreteerTest類(lèi)的代碼

這是測(cè)試類(lèi)在最終狀態(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 語(yǔ)句 @Inject,請(qǐng)鍵入 @Inj 并選擇 @Inject(javax.inject)。
    Arquillian快速入門(mén)指南
  2. 通過(guò)復(fù)制添加剩余的代碼。
    Arquillian快速入門(mén)指南

創(chuàng)建運(yùn)行測(cè)試的運(yùn)行配置

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

在嵌入式容器中運(yùn)行測(cè)試

  1. 在“編輯配置(Edit configuration)”對(duì)話(huà)框中,單擊“運(yùn)行(Run)”。在運(yùn)行工具窗口打開(kāi),一段時(shí)間后,測(cè)試結(jié)果顯示在那里。
    Arquillian快速入門(mén)指南
  2. 點(diǎn)擊 關(guān)閉“運(yùn)行(Run)”工具窗口。

編輯運(yùn)行配置:添加托管容器

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

  1. 點(diǎn)擊運(yùn)行配置選擇器并選擇“編輯配置(Edit Configurations)”。
    Arquillian快速入門(mén)指南
  2. 在運(yùn)“行/調(diào)試配置(Run/Debug Configurations)”對(duì)話(huà)框中,單擊“配置(Configure)”。
    Arquillian快速入門(mén)指南
  3. 在 Arquillian 容器對(duì)話(huà)框中,單擊 并選擇“手動(dòng)容器配置(Manual container configuration)”。
  4. 更改配置的名稱(chēng)(例如 GlassFish Managed)。
  5. 在 Dependencies 下,單擊 并選擇 Add maven dependency。
  6. 在“從Maven存儲(chǔ)庫(kù)下載庫(kù)(Download Library From Maven Repository)”對(duì)話(huà)框中,鍵入 arquillian-glassfish-managed-3.1 并單擊 。然后從列表中選擇 org.jboss.arquillian.container:arquillian-glassfish-managed-3.1:1.0.0.CR4。選擇“下載到(Download to)”復(fù)選框,然后單擊“確定”。
    Arquillian快速入門(mén)指南
    在這一步,你的 Arquillian 容器對(duì)話(huà)框應(yīng)該是這樣的:
    Arquillian快速入門(mén)指南
    點(diǎn)擊“確定”。
  7. 在“運(yùn)行/調(diào)試配置(Run/Debug Configurations)”對(duì)話(huà)框中,選擇“GlassFish托管(GlassFish Managed)”,然后單擊“確定”。
    Arquillian快速入門(mén)指南

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

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

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

在托管容器中運(yùn)行測(cè)試

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

修改arquillian.xml

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

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

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

Arquillian快速入門(mén)指南

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)