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

您的位置:首頁技術文章
文章詳情頁

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

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

IntelliJ IDEA創建單元測試

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

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

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

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

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

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

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

以這種方式重寫該 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:

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

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

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

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

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

新創建的模塊具有在 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)”:

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

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

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

如果您使用 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:

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

5.為測試創建一個運行/調試配置

為了運行測試,您需要創建專用的運行/調試配置。設置測試模塊時會自動為您創建默認配置。

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

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

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

6.運行測試

要運行測試,請確保在編輯器右上角的下拉列表中選擇適當的運行/調試配置,然后單擊其旁邊的運行按鈕 IDEA 單元測試創建方法詳解(2020.03版本親測)

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

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

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

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

標簽: IDEA
相關文章:
主站蜘蛛池模板: 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 真石漆,山东真石漆,真石漆厂家,真石漆价格-山东新佳涂料有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶 | 水平筛厂家-三轴椭圆水平振动筛-泥沙震动筛设备_山东奥凯诺矿机 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 宜兴市恺瑞德环保科技有限公司| 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 深圳市超时尚职业培训学校,培训:月嫂,育婴,养老,家政;化妆,美容,美发,美甲. | 科威信洗净科技,碳氢清洗机,超声波清洗机,真空碳氢清洗机 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 算命免费_生辰八字_免费在线算命 - 卜算子算命网 | 有福网(yofus.com)洗照片冲印,毕业聚会纪念册相册制作个性DIY平台 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 工控机-图像采集卡-PoE网卡-人工智能-工业主板-深圳朗锐智科 | 游动电流仪-流通式浊度分析仪-杰普仪器(上海)有限公司 | 安徽免检低氮锅炉_合肥燃油锅炉_安徽蒸汽发生器_合肥燃气锅炉-合肥扬诺锅炉有限公司 | 烟气换热器_GGH烟气换热器_空气预热器_高温气气换热器-青岛康景辉 | 铜镍-康铜-锰铜-电阻合金-NC003 - 杭州兴宇合金有限公司 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 北京发电机出租_发电机租赁_北京发电机维修 - 河北腾伦发电机出租 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | 股票入门基础知识_股票知识_股票投资大师_格雷厄姆网 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 气密性检测仪_气密性检测设备_防水测试仪_密封测试仪-岳信仪器 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 首页-浙江橙树网络技术有限公司 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 旋振筛|圆形摇摆筛|直线振动筛|滚筒筛|压榨机|河南天众机械设备有限公司 | 德州网站开发定制-小程序开发制作-APP软件开发-「两山开发」 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 搪瓷搅拌器,搪玻璃搅拌器,搪玻璃冷凝器_厂家-淄博越宏化工设备 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 |