1. 程式人生 > 程式設計 >IDEA 單元測試建立方法詳解(2020.03版本親測)

IDEA 單元測試建立方法詳解(2020.03版本親測)

IntelliJ IDEA建立單元測試

在 Android 中,單元測試基於 JUnit,JUnit 的平面使用足以測試完全基於 Java 程式碼的功能。

但是,為了測試 Android 特定的功能,您需要一堆構建在 JUnit 之上的包裝類。IntelliJ IDEA 簡化了 Android 測試專案構建過程中的大部分任務。

1.確保你的程式碼是可測試的

單元測試要求原始碼的編寫方式使得模組之間的依賴關係可以很容易地通過模仿來消除。另外,單元測試要求功能相互隔離。

因為這個 HelloDroid 類的程式碼不容易測試。在進行單元測試之前,我們首先應用一個快速重構。

開啟 HelloDroid 類,並選擇 TapDroid 方法中引用顯示訊息的生成的程式碼部分:

IntelliJ IDEA建立單元測試

以這種方式重寫該 TapDroid 方法,以便它呼叫新建立的公共幫助方法(GetStringFor Display),如下所示:

private void TapDroid() {
counter++;
String temp = getStringForDisplay(counter);
message.setText(String.format("You touched the droid %s",temp));
}

public String getStringForDisplay(int count) {
String temp;
switch(count)
{
case 1:
temp = "once";
break;
case 2:
temp = "twice";
break;
default:
temp = String.format("%d times",count);
}
return temp;
}

該 getStringForDisplay 方法現在更容易測試,並且該 TapDroid 方法的主體已經大大簡化。

2.建立一個測試模組

現在讓我們建立一個新的測試模組並設定 HelloDroid 為測試模組。這可確保測試模組在包含要測試的原始碼的模組上儲存一個引用。

從主選單中,選擇:檔案| 新增| 模組(File | New | Module)來啟動“新建模組嚮導(New Module wizard)”。

在嚮導的第一頁上,在左窗格中選擇 Android,然後在右側選擇 Test Module:

IntelliJ IDEA建立單元測試

在第二頁上,指定新的模組名稱,例如 Tests。保持其他欄位不變。該 HelloDroid 模組被自動指定為測試模組,因為在這一點上,這是該專案中唯一的模組。

IntelliJ IDEA建立單元測試

一個新節點將被新增到名為 Tests 的專案中。這個模組有它自己的 manifest 檔案和和 src 目錄。該 manifest 檔案連結到 android.test 庫以構建測試類。

IntelliJ IDEA建立單元測試

新建立的模組具有在 src 資料夾中命名的 HelloDroidTest 測試檔案。您可以通過新增更多的 Java 類來新增更多的測試檔案,如下所示:

public class HelloDroidTest extends ActivityInstrumentationTestCase2<HelloDroid> {

public HelloDroidTest() {
super("com.example.HelloDroid",HelloDroid.class);
}
}

測試類繼承自 ActivityInstrumentationTestCase2,其中 T 就是你要測試的活動的名稱。

請注意,新增建構函式是必需的,因為沒有為父類定義預設建構函式。

3.新增一個測試方法

在編輯器中,右鍵單擊 HelloDroid 測試類並單擊“生成(Generate)”(或者單擊 Alt+Insert)。在開啟的彈出選單中,選擇“測試方法(Test Method)”:

IntelliJ IDEA建立單元測試

IntelliJ IDEA 建立一個名為 testName 的新的方法存根,您可以輕鬆地將 Name 字尾更改為上下文中更有意義的內容:

IntelliJ IDEA建立單元測試

如果您使用 JUnit 3(Android 中的預設測試框架),則方法名稱中 test 的字首是必需的;使用 JUnit 4,您必須使用方法名稱註釋來指示給定的方法必須作為測試方法進行處理。

4.編寫測試方法的邏輯

在內部,測試方法首先獲取對其正在嘗試測試的活動的引用,然後呼叫目標方法,最後將有效結果與預期結果進行比較。

將下面的程式碼新增到測試方法中:

public void testStringForDisplay() throws Exception {
int count = 1;
HelloDroid activity = getActivity();
String result = activity.getStringForDisplay(count);
Assert.assertEquals(result,"once");

}

斷言是通過 JUnit 框架的服務實現的,需要在原始檔中正確引用。當意圖動作彈出來引用它時按下 Alt+Enter:

IntelliJ IDEA建立單元測試

5.為測試建立一個執行/除錯配置

為了執行測試,您需要建立專用的執行/除錯配置。設定測試模組時會自動為您建立預設配置。

要編輯其設定,請在主選單中選擇:執行| 編輯配置(Run | Edit Configurations)並在左側窗格中選擇:“Android測試(Android Tests)”下的“測試(Tests)”:

IntelliJ IDEA建立單元測試

您可以選擇在模組中執行所有測試,也可以將測試限制為給定類中的方法。

6.執行測試

要執行測試,請確保在編輯器右上角的下拉列表中選擇適當的執行/除錯配置,然後單擊其旁邊的執行按鈕 img

IntelliJ IDEA建立單元測試

測試結果顯示在自動啟用的“執行(Run)”工具視窗的 Test Runner 標籤中。如果測試成功完成,則編輯器右上角會出現一個綠色方形圖示。如果有警告,圖示是黃色的;如果測試失敗,則是紅色的。您可以點選圖示獲取更多詳細資訊。

您可以通過單擊 “測試(Tests)”選項卡工具欄中的“匯出測試結果(Export Test Results)”圖示 img,將測試報告匯出為各種格式。

到此這篇關於IDEA 單元測試建立方法詳解(2020.03版本親測)的文章就介紹到這了,更多相關IDEA 單元測試建立內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!