欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IDEA 單元測試創(chuàng)建方法詳解(2020.03版本親測)

 更新時(shí)間:2020年10月08日 09:08:36   作者:Hi丶ImViper  
這篇文章主要介紹了IDEA 單元測試創(chuàng)建方法詳解(2020.03版本親測),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

IntelliJ IDEA創(chuàng)建單元測試

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

但是,為了測試 Android 特定的功能,您需要一堆構(gòu)建在 JUnit 之上的包裝類。IntelliJ IDEA 簡化了 Android 測試項(xiàng)目構(gòu)建過程中的大部分任務(wù)。

1.確保你的代碼是可測試的

單元測試要求源代碼的編寫方式使得模塊之間的依賴關(guān)系可以很容易地通過模仿來消除。另外,單元測試要求功能相互隔離。

因?yàn)檫@個(gè) HelloDroid 類的代碼不容易測試。在進(jìn)行單元測試之前,我們首先應(yīng)用一個(gè)快速重構(gòu)。

打開 HelloDroid 類,并選擇 TapDroid 方法中引用顯示消息的生成的代碼部分:

IntelliJ IDEA創(chuàng)建單元測試

以這種方式重寫該 TapDroid 方法,以便它調(diào)用新創(chuàng)建的公共幫助方法(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 方法現(xiàn)在更容易測試,并且該 TapDroid 方法的主體已經(jīng)大大簡化。

2.創(chuàng)建一個(gè)測試模塊

現(xiàn)在讓我們創(chuàng)建一個(gè)新的測試模塊并設(shè)置 HelloDroid 為測試模塊。這可確保測試模塊在包含要測試的源代碼的模塊上保存一個(gè)引用。

從主菜單中,選擇:文件| 新增| 模塊(File | New | Module)來啟動“新建模塊向?qū)В∟ew Module wizard)”。

在向?qū)У牡谝豁撋?,在左窗格中選擇 Android,然后在右側(cè)選擇 Test Module:

IntelliJ IDEA創(chuàng)建單元測試

在第二頁上,指定新的模塊名稱,例如 Tests。保持其他字段不變。該 HelloDroid 模塊被自動指定為測試模塊,因?yàn)樵谶@一點(diǎn)上,這是該項(xiàng)目中唯一的模塊。

IntelliJ IDEA創(chuàng)建單元測試

一個(gè)新節(jié)點(diǎn)將被添加到名為 Tests 的項(xiàng)目中。這個(gè)模塊有它自己的 manifest 文件和和 src 目錄。該 manifest 文件鏈接到 android.test 庫以構(gòu)建測試類。

IntelliJ IDEA創(chuàng)建單元測試

新創(chuàng)建的模塊具有在 src 文件夾中命名的 HelloDroidTest 測試文件。您可以通過添加更多的 Java 類來添加更多的測試文件,如下所示:

public class HelloDroidTest extends ActivityInstrumentationTestCase2<HelloDroid> {

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

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

請注意,添加構(gòu)造函數(shù)是必需的,因?yàn)闆]有為父類定義默認(rèn)構(gòu)造函數(shù)。

3.添加一個(gè)測試方法

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

IntelliJ IDEA創(chuàng)建單元測試

IntelliJ IDEA 創(chuàng)建一個(gè)名為 testName 的新的方法存根,您可以輕松地將 Name 后綴更改為上下文中更有意義的內(nèi)容:

IntelliJ IDEA創(chuàng)建單元測試

如果您使用 JUnit 3(Android 中的默認(rèn)測試框架),則方法名稱中 test 的前綴是必需的;使用 JUnit 4,您必須使用方法名稱注釋來指示給定的方法必須作為測試方法進(jìn)行處理。

4.編寫測試方法的邏輯

在內(nèi)部,測試方法首先獲取對其正在嘗試測試的活動的引用,然后調(diào)用目標(biāo)方法,最后將有效結(jié)果與預(yù)期結(jié)果進(jìn)行比較。

將下面的代碼添加到測試方法中:

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

}

斷言是通過 JUnit 框架的服務(wù)實(shí)現(xiàn)的,需要在源文件中正確引用。當(dāng)意圖動作彈出來引用它時(shí)按下 Alt+Enter:

IntelliJ IDEA創(chuàng)建單元測試

5.為測試創(chuàng)建一個(gè)運(yùn)行/調(diào)試配置

為了運(yùn)行測試,您需要創(chuàng)建專用的運(yùn)行/調(diào)試配置。設(shè)置測試模塊時(shí)會自動為您創(chuàng)建默認(rèn)配置。

要編輯其設(shè)置,請?jiān)谥鞑藛沃羞x擇:運(yùn)行| 編輯配置(Run | Edit Configurations)并在左側(cè)窗格中選擇:“Android測試(Android Tests)”下的“測試(Tests)”:

IntelliJ IDEA創(chuàng)建單元測試

您可以選擇在模塊中運(yùn)行所有測試,也可以將測試限制為給定類中的方法。

6.運(yùn)行測試

要運(yùn)行測試,請確保在編輯器右上角的下拉列表中選擇適當(dāng)?shù)倪\(yùn)行/調(diào)試配置,然后單擊其旁邊的運(yùn)行按鈕 img

IntelliJ IDEA創(chuàng)建單元測試

測試結(jié)果顯示在自動激活的“運(yùn)行(Run)”工具窗口的 Test Runner 標(biāo)簽中。如果測試成功完成,則編輯器右上角會出現(xiàn)一個(gè)綠色方形圖標(biāo)。如果有警告,圖標(biāo)是黃色的;如果測試失敗,則是紅色的。您可以點(diǎn)擊圖標(biāo)獲取更多詳細(xì)信息。

您可以通過單擊 “測試(Tests)”選項(xiàng)卡工具欄中的“導(dǎo)出測試結(jié)果(Export Test Results)”圖標(biāo) img,將測試報(bào)告導(dǎo)出為各種格式。

到此這篇關(guān)于IDEA 單元測試創(chuàng)建方法詳解(2020.03版本親測)的文章就介紹到這了,更多相關(guān)IDEA 單元測試創(chuàng)建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • sprng和struts有什么區(qū)別?

    sprng和struts有什么區(qū)別?

    Spring和Struts都是近年來比較流行的框架,Struts主要用于表示層,Spring用于業(yè)務(wù)層,以及Hiberate主要用于持久層,
    2015-06-06
  • Java:不支持發(fā)行版本5的超詳細(xì)簡單解決方案

    Java:不支持發(fā)行版本5的超詳細(xì)簡單解決方案

    發(fā)行版本5是Java5,已經(jīng)是十多年前的版本了,現(xiàn)在已經(jīng)不再被支持,如果您使用的是舊版的Java開發(fā)工具,可能會出現(xiàn)這樣的錯(cuò)誤,這篇文章主要給大家介紹了關(guān)于Java:不支持發(fā)行版本5的超詳細(xì)簡單解決方案,需要的朋友可以參考下
    2024-01-01
  • 詳談Java中instanceof和isInstance的區(qū)別

    詳談Java中instanceof和isInstance的區(qū)別

    下面小編就為大家?guī)硪黄斦凧ava中instanceof和isInstance的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • MyBatis中如何查詢某個(gè)時(shí)間段內(nèi)的數(shù)據(jù)

    MyBatis中如何查詢某個(gè)時(shí)間段內(nèi)的數(shù)據(jù)

    這篇文章主要介紹了MyBatis中如何查詢某個(gè)時(shí)間段內(nèi)的數(shù)據(jù),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java中遍歷Map的六種方法實(shí)現(xiàn)

    Java中遍歷Map的六種方法實(shí)現(xiàn)

    這篇文章主要介紹了Java中遍歷Map的六種方法,Map是常用的數(shù)據(jù)結(jié)構(gòu)之一,它提供了鍵值對的存儲方式,可以方便地進(jìn)行數(shù)據(jù)查找和操作,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • Java Spring循環(huán)依賴原理與bean的生命周期圖文案例詳解

    Java Spring循環(huán)依賴原理與bean的生命周期圖文案例詳解

    這篇文章主要介紹了Spring循環(huán)依賴原理與bean的生命周期圖文案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • java中實(shí)現(xiàn)分頁的幾種常見方式總結(jié)

    java中實(shí)現(xiàn)分頁的幾種常見方式總結(jié)

    在項(xiàng)目中經(jīng)常會查詢大量數(shù)據(jù),這就要用到分頁展示,下面這篇文章主要給大家介紹了關(guān)于java中實(shí)現(xiàn)分頁的幾種常見方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Idea?springboot?springCloud熱加載熱調(diào)試兩種常用方式

    Idea?springboot?springCloud熱加載熱調(diào)試兩種常用方式

    這篇文章主要介紹了Idea?springboot?springCloud熱加載熱調(diào)試常用的兩種方式,在項(xiàng)目開發(fā)的過程中,需要修改調(diào)試的時(shí)候偶每次都需要重啟項(xiàng)目浪費(fèi)時(shí)間,下面是我整理的兩種常用的兩種方式,需要的朋友可以參考下
    2023-04-04
  • Java中volatile?的作用

    Java中volatile?的作用

    這篇文章主要介紹了Java中volatile?的作用,volatile是Java并發(fā)編程的重要組成部分,主要作用是保證內(nèi)存的可見性和禁止指令重排序,下文更多對volatile作用的介紹,需要的小伙伴可以參考一下
    2022-05-05
  • SpringBoot整合ES多個(gè)精確值查詢 terms功能實(shí)現(xiàn)

    SpringBoot整合ES多個(gè)精確值查詢 terms功能實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot整合ES多個(gè)精確值查詢 terms功能實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06

最新評論