国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:4日期:2024-08-09 15:53:34

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

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

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

1.確保你的代碼是可測(cè)試的

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

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

打開(kāi) HelloDroid 類(lèi),并選擇 TapDroid 方法中引用顯示消息的生成的代碼部分:

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

以這種方式重寫(xiě)該 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)在更容易測(cè)試,并且該 TapDroid 方法的主體已經(jīng)大大簡(jiǎn)化。

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

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

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

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

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

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

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

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

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

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

public class HelloDroidTest extends ActivityInstrumentationTestCase2<HelloDroid> {public HelloDroidTest() {super('com.example.HelloDroid', HelloDroid.class);}}

測(cè)試類(lèi)繼承自 ActivityInstrumentationTestCase2,其中 T 就是你要測(cè)試的活動(dòng)的名稱(chēng)。

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

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

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

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

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

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

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

4.編寫(xiě)測(cè)試方法的邏輯

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

將下面的代碼添加到測(cè)試方法中:

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

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

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

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

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

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

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

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

6.運(yùn)行測(cè)試

要運(yùn)行測(cè)試,請(qǐng)確保在編輯器右上角的下拉列表中選擇適當(dāng)?shù)倪\(yùn)行/調(diào)試配置,然后單擊其旁邊的運(yùn)行按鈕 IDEA 單元測(cè)試創(chuàng)建方法詳解(2020.03版本親測(cè))

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

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

您可以通過(guò)單擊 “測(cè)試(Tests)”選項(xiàng)卡工具欄中的“導(dǎo)出測(cè)試結(jié)果(Export Test Results)”圖標(biāo) IDEA 單元測(cè)試創(chuàng)建方法詳解(2020.03版本親測(cè)),將測(cè)試報(bào)告導(dǎo)出為各種格式。

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

標(biāo)簽: IDEA
相關(guān)文章:
主站蜘蛛池模板: 成人黄色免费 | 亚洲欧美高清在线 | 国产精品久久久久久久 | 精品一区二区三区免费观看 | 国产成人黄网在线免 | 欧美特黄一级高清免费的香蕉 | 亚洲综合久久久久久中文字幕 | 欧美午夜不卡在线观看最新 | 欧美人牲囗毛片 | 视频一区色眯眯视频在线 | 办公室紧身裙丝袜av在线 | 久久99久久99精品 | 97青娱国产盛宴精品视频 | 在线免费看一级片 | 国产精品日韩欧美在线第3页 | 久久精品久久精品久久 | 免费成人在线网站 | 91久久亚洲国产成人精品性色 | 欧美另类videosgrstv变态 欧美另类高清xxxxx | 依人九九 | 国产亚洲精品一区二区在线播放 | 黄网站色成年小说系列 | 台湾三级 | 欧美日韩在线观看精品 | 亚洲综合网在线观看首页 | 日韩一及片 | 中国农村一级毛片 | 亚洲香蕉久久一区二区 | 久久精品一区二区国产 | 日韩在线一区二区三区视频 | 夜色精品国产一区二区 | 一区二区三区免费视频播放器 | 亚洲天码中文字幕第一页 | 国产亚洲精品久久久久久久 | 一级做a爱过程免费观看 | 99re热精品这里精品 | 成人影院在线免费观看 | 一级a级国产不卡毛片 | 国产乱弄视频在线观看 | 成人性色生活影片 | 国产午夜亚洲精品一区网站 |