W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在 Android 中,單元測試基于 JUnit,JUnit 的平面使用足以測試完全基于 Java 代碼的功能。
但是,為了測試 Android 特定的功能,您需要一堆構(gòu)建在 JUnit 之上的包裝類。IntelliJ IDEA 簡化了 Android 測試項目構(gòu)建過程中的大部分任務(wù)。
單元測試要求源代碼的編寫方式使得模塊之間的依賴關(guān)系可以很容易地通過模仿來消除。另外,單元測試要求功能相互隔離。
因為這個 HelloDroid 類的代碼不容易測試。在進行單元測試之前,我們首先應(yīng)用一個快速重構(gòu)。
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 方法現(xiàn)在更容易測試,并且該 TapDroid 方法的主體已經(jīng)大大簡化。
現(xiàn)在讓我們創(chuàng)建一個新的測試模塊并設(shè)置 HelloDroid 為測試模塊。這可確保測試模塊在包含要測試的源代碼的模塊上保存一個引用。
一個新節(jié)點將被添加到名為 Tests 的項目中。這個模塊有它自己的 manifest 文件和和 src 目錄。該 manifest 文件鏈接到 android.test 庫以構(gòu)建測試類。
新創(chuàng)建的模塊具有在 src 文件夾中命名的 HelloDroidTest 測試文件。您可以通過添加更多的 Java 類來添加更多的測試文件,如下所示:
public class HelloDroidTest extends ActivityInstrumentationTestCase2<HelloDroid> {
public HelloDroidTest() {
super("com.example.HelloDroid", HelloDroid.class);
}
}
測試類繼承自 ActivityInstrumentationTestCase2<T>,其中 T 就是你要測試的活動的名稱。
請注意,添加構(gòu)造函數(shù)是必需的,因為沒有為父類定義默認構(gòu)造函數(shù)。
在編輯器中,右鍵單擊 HelloDroid 測試類并單擊“生成(Generate)”(或者單擊 Alt+Insert)。在打開的彈出菜單中,選擇“測試方法(Test Method)”:
IntelliJ IDEA 創(chuàng)建一個名為 testName 的新的方法存根,您可以輕松地將 Name 后綴更改為上下文中更有意義的內(nèi)容:
如果您使用 JUnit 3(Android 中的默認測試框架),則方法名稱中 test 的前綴是必需的;使用 JUnit 4,您必須使用方法名稱注釋來指示給定的方法必須作為測試方法進行處理。
在內(nèi)部,測試方法首先獲取對其正在嘗試測試的活動的引用,然后調(diào)用目標方法,最后將有效結(jié)果與預期結(jié)果進行比較。
將下面的代碼添加到測試方法中:
public void testStringForDisplay() throws Exception {
int count = 1;
HelloDroid activity = getActivity();
String result = activity.getStringForDisplay(count);
Assert.assertEquals(result, "once");
}
斷言是通過 JUnit 框架的服務(wù)實現(xiàn)的,需要在源文件中正確引用。當意圖動作彈出來引用它時按下 Alt+Enter:
為了運行測試,您需要創(chuàng)建專用的運行/調(diào)試配置。設(shè)置測試模塊時會自動為您創(chuàng)建默認配置。
要編輯其設(shè)置,請在主菜單中選擇:運行| 編輯配置(Run | Edit Configurations)并在左側(cè)窗格中選擇:“Android測試(Android Tests)”下的“測試(Tests)”:
您可以選擇在模塊中運行所有測試,也可以將測試限制為給定類中的方法。
要運行測試,請確保在編輯器右上角的下拉列表中選擇適當?shù)倪\行/調(diào)試配置,然后單擊其旁邊的運行按鈕
:
測試結(jié)果顯示在自動激活的“運行(Run)”工具窗口的 Test Runner 標簽中。如果測試成功完成,則編輯器右上角會出現(xiàn)一個綠色方形圖標。如果有警告,圖標是黃色的;如果測試失敗,則是紅色的。您可以點擊圖標獲取更多詳細信息。
您可以通過單擊 “測試(Tests)”選項卡工具欄中的“導出測試結(jié)果(Export Test Results)”圖標
,將測試報告導出為各種格式。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: