相關(guān)文章:
1、走出 iOS 單元測(cè)試的困境
2、iOS單元測(cè)試--百度Hi iOS團(tuán)隊(duì)技術(shù)周報(bào)
一、單元測(cè)試有什么好處?
- 單元測(cè)試使工作完成的更輕松
- 經(jīng)過單元測(cè)試的代碼,質(zhì)量能夠得到保證
- 單元測(cè)試發(fā)現(xiàn)的問題很容易定位。
- 修改代碼犯的錯(cuò),經(jīng)過單元測(cè)試易發(fā)現(xiàn)
- 單元測(cè)試可以在早期就發(fā)現(xiàn)性能問題
- 單元測(cè)試使你的設(shè)計(jì)更好
- 大大減少花在調(diào)試上的時(shí)間
二、作為菜鳥我用單元測(cè)試測(cè)什么?
既然單元測(cè)試這么多好處,作為菜鳥我能做什么呢?
◆ 不是所有的方法都需要測(cè)試。
? 例如:私有方法不需要測(cè)試!只有暴露在 .h 中的方法需要測(cè)試!面向?qū)ο笥幸粋€(gè)原則:開閉原則!
◆ 所有跟 UI 有關(guān)的都不需要測(cè)試,也不好測(cè)試。
? 把業(yè)務(wù)邏輯 代碼封裝出來!變成可以測(cè)試的代碼,讓程序更加健壯!
◆ 一般而言,代碼的覆蓋度大概在 50% ~ 70%
四、那單元測(cè)試代碼覆蓋率又是什么鬼?
單元測(cè)試代碼覆蓋率如何統(tǒng)計(jì)的呢?如果一個(gè)新建的單元測(cè)試想要查看顯示代碼覆蓋率,要怎么做呢?
1、修改test target的Build Setting中Generate Test Coverage Files 和Instrument Program Flow為YES;
2、在test target的Build Phases中的Compile Sources中添加需要被測(cè)量代碼覆蓋率的文件(.m,.mm)。
注意:不需要測(cè)量代碼覆蓋率之前,test target中只需要包含。
如上圖,一旦這個(gè)測(cè)試通過了,你就能知道 checkWord 這個(gè)方法,至少有一條路徑是對(duì)的。但你不知道的是,還多多少?zèng)]有被測(cè)試到。這就是code coverage這個(gè)工具的好處。當(dāng)你打開code coverage tab后,你可以清楚的看到測(cè)試的覆蓋情況。他們按找 target, file, function 進(jìn)行了自動(dòng)分組。
打開Xcode左邊窗口的Report Navigator面板,選中你剛運(yùn)行的測(cè)試。然后在tab中選中 Coverage。這會(huì)展示一個(gè)你的類、方法的列表,并標(biāo)示出每個(gè)的測(cè)試覆蓋率。如果你將鼠標(biāo)懸停在checkWord這個(gè)方法上,你可以看到測(cè)試的覆蓋率是28%。雙擊方法的名字,Xcode會(huì)打開類的代碼,并且看到code coverage的情況。
三、如何建單元測(cè)試環(huán)境呢?
關(guān)于如何建單元測(cè)試環(huán)境,很多文章都有描述,而且都有操作配圖,可以自行查閱。相關(guān)文章-單元測(cè)試入門.
包括:
1、 單元測(cè)試的運(yùn)行;
2、單元測(cè)試框架說明;
3、單元測(cè)試簡(jiǎn)單案例的實(shí)踐。
注意:有第三方依賴的,單元測(cè)試也要配置依賴環(huán)境。