电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

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

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

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

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

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

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

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

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

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

以這種方式重寫該 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)建一個測試模塊

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

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

在向?qū)У牡谝豁撋希谧蟠案裰羞x擇 Android,然后在右側(cè)選擇 Test Module:

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

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

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

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

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

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

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

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

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

3.添加一個測試方法

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

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

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

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

如果您使用 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ù)實現(xiàn)的,需要在源文件中正確引用。當(dāng)意圖動作彈出來引用它時按下 Alt+Enter:

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

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

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

要編輯其設(shè)置,請在主菜單中選擇:運(yùn)行| 編輯配置(Run | Edit Configurations)并在左側(cè)窗格中選擇:“Android測試(Android Tests)”下的“測試(Tests)”:

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

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

6.運(yùn)行測試

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

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

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

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

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

標(biāo)簽: IDEA
相關(guān)文章:
主站蜘蛛池模板: 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 德国BOSCH电磁阀-德国HERION电磁阀-JOUCOMATIC电磁阀|乾拓百科 | 药品冷藏箱厂家_低温冰箱_洁净工作台-济南欧莱博电子商务有限公司官网 | 自进式锚杆-自钻式中空注浆锚杆-洛阳恒诺锚固锚杆生产厂家 | 2025福建平潭岛旅游攻略|蓝眼泪,景点,住宿攻略-趣平潭网 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 低压载波电能表-单相导轨式电能表-华邦电力科技股份有限公司-智能物联网综合管理平台 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 股指期货-期货开户-交易手续费佣金加1分-保证金低-期货公司排名靠前-万利信息开户 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 纳米二氧化硅,白炭黑,阴离子乳化剂-臻丽拾科技 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 气密性检测仪_气密性检测设备_防水测试仪_密封测试仪-岳信仪器 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | OLChemim试剂-ABsciex耗材-广州市自力色谱科仪有限公司 | 杭州|上海贴标机-百科| 电线电缆厂家|沈阳电缆厂|电线厂|沈阳英联塑力线缆有限公司 | 湖南自考_湖南自学考试| 首页 - 军军小站|张军博客 | 安徽合肥格力空调专卖店_格力中央空调_格力空调总经销公司代理-皖格制冷设备 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 全钢实验台,实验室工作台厂家-无锡市辰之航装饰材料有限公司 | AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 仿清水混凝土_清水混凝土装修_施工_修饰_保护剂_修补_清水混凝土修复-德州忠岭建筑装饰工程 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 深圳市索富通实业有限公司-可燃气体报警器 | 可燃气体探测器 | 气体检测仪 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 | 房间温控器|LonWorks|海思 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 山楂片_雪花_迷你山楂片_山楂条饼厂家-青州市丰源食品厂 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 |