你的應(yīng)用程序功能越多,手動(dòng)測(cè)試就越難拴清。自動(dòng)測(cè)試有助于確保你的應(yīng)用程序在發(fā)布前正確運(yùn)行蚜点,同時(shí)保留你的功能和加快bug修復(fù)速度。
自動(dòng)化測(cè)試分為以下幾類(lèi):
- 單元測(cè)試:測(cè)試單個(gè)函數(shù)蒿偎、方法或類(lèi)
- widget測(cè)試
- 集成測(cè)試:測(cè)試一個(gè)完整的應(yīng)用程序或者一個(gè)應(yīng)用程序的大部分
一般來(lái)說(shuō),一個(gè)經(jīng)過(guò)良好測(cè)試的應(yīng)用程序有許多單元和widget測(cè)試怀读,通過(guò)代碼覆蓋率來(lái)跟蹤诉位,加上足夠的集成測(cè)試來(lái)覆蓋所有重要的用例。 這個(gè)建議是基于這樣一個(gè)事實(shí)菜枷,即不同類(lèi)型的測(cè)試之間存在著權(quán)衡苍糠,如下所示。
單元測(cè)試 | Widget測(cè)試 | 集成測(cè)試 | |
---|---|---|---|
可信度 | 低 | 高 | 最高 |
維護(hù)成本 | 低 | 高 | 最高 |
依賴(lài)性 | 很少 | 多 | 最多 |
執(zhí)行速度 | 快 | 慢 | 最慢的 |
單元測(cè)試
單元測(cè)試測(cè)試單個(gè)函數(shù)啤誊、方法或類(lèi)岳瞭。 單元測(cè)試的目標(biāo)是在各種條件下驗(yàn)證邏輯單元的正確性。 被測(cè)試單元的外部依賴(lài)項(xiàng)通常被模擬出來(lái)坷衍。 單元測(cè)試通常不從磁盤(pán)讀取或?qū)懭肭抻牛膊粡倪\(yùn)行測(cè)試的進(jìn)程外部接收用戶(hù)操作。
目錄:
1. 單元測(cè)試簡(jiǎn)介
2. 使用 Mockito 模擬依賴(lài)項(xiàng)
使用 Mockito 模擬依賴(lài)項(xiàng)的翻譯
Widget測(cè)試:
Widget測(cè)試(在其他被稱(chēng)為組件測(cè)試的UI框架中)測(cè)試單個(gè)Widget枫耳。Widget測(cè)試的目標(biāo)是驗(yàn)證Widget的UI是否按預(yù)期進(jìn)行查看和交互乏矾。測(cè)試一個(gè)Widget涉及多個(gè)類(lèi),并且需要提供一個(gè)BuildContext用來(lái)給Widget提供上下文環(huán)境迁杨。
例如钻心,被測(cè)試的Widget應(yīng)該能夠接收和響應(yīng)用戶(hù)操作和事件,執(zhí)行布局铅协,并實(shí)例化child Widgets捷沸。因此,Widget測(cè)試比單元測(cè)試更全面狐史。但是痒给,與單元測(cè)試一樣说墨,Widget測(cè)試的環(huán)境被一個(gè)比完整的UI系統(tǒng)簡(jiǎn)單得多的實(shí)現(xiàn)所取代。
目錄:
1. Widget測(cè)試介紹
2. 查找child widget
3. 點(diǎn)擊苍柏,拖動(dòng)和輸入文本
集成測(cè)試:
集成測(cè)試測(cè)試一個(gè)完整的應(yīng)用程序或應(yīng)用程序的大部分尼斧。集成測(cè)試的目標(biāo)是驗(yàn)證所有被測(cè)試的Widget和服務(wù)是否按預(yù)期正常工作。此外试吁,您可以使用集成測(cè)試來(lái)驗(yàn)證應(yīng)用程序的性能棺棵。
通常,集成測(cè)試在真實(shí)設(shè)備或模擬器上運(yùn)行熄捍,如iOS模擬器或Android模擬器烛恤。測(cè)試中的應(yīng)用程序通常與測(cè)試驅(qū)動(dòng)程序代碼隔離,以避免結(jié)果出現(xiàn)偏差余耽。
目錄:
1. 集成測(cè)試介紹
2. 性能分析
3. 滾動(dòng)
持續(xù)集成服務(wù)
持續(xù)集成(CI)服務(wù)允許您在推送新代碼更改時(shí)自動(dòng)運(yùn)行測(cè)試缚柏。這可以及時(shí)反饋代碼更改是否按預(yù)期工作,并且不會(huì)引入bug碟贾。
有關(guān)在各種持續(xù)集成服務(wù)上運(yùn)行測(cè)試的信息船惨,請(qǐng)參見(jiàn)以下內(nèi)容: