關(guān)于iOS單元測(cè)試幾點(diǎn)Tips

相關(guān)文章:

1、走出 iOS 單元測(cè)試的困境
2、iOS單元測(cè)試--百度Hi iOS團(tuán)隊(duì)技術(shù)周報(bào)

一、單元測(cè)試有什么好處?

單元測(cè)試使用前后對(duì)比.png
  1. 單元測(cè)試使工作完成的更輕松
  1. 經(jīng)過單元測(cè)試的代碼,質(zhì)量能夠得到保證
  2. 單元測(cè)試發(fā)現(xiàn)的問題很容易定位。
  3. 修改代碼犯的錯(cuò),經(jīng)過單元測(cè)試易發(fā)現(xiàn)
  4. 單元測(cè)試可以在早期就發(fā)現(xiàn)性能問題
  5. 單元測(cè)試使你的設(shè)計(jì)更好
  6. 大大減少花在調(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中只需要包含。

AFNetworking單元測(cè)試代碼覆蓋率.png

如上圖,一旦這個(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)境。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,071評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,360評(píng)論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,895評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,123評(píng)論 0 286
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,643評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,559評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,742評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評(píng)論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,981評(píng)論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評(píng)論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,354評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,707評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容

  • 單元測(cè)試不是一個(gè)小工程,需要多用些時(shí)間才能做好,不要希望通過這個(gè)文章就能掌握單元測(cè)試,這只是一個(gè)入門,需要自己動(dòng)手...
    勇不言棄92閱讀 7,835評(píng)論 9 60
  • 編寫測(cè)試可不是一項(xiàng)迷人的工作;然而,由于測(cè)試可以避免使你的寶貝應(yīng)用程序變成一塊充斥錯(cuò)誤的大垃圾場(chǎng),所以編寫測(cè)試又是...
    cosWriter閱讀 1,598評(píng)論 0 4
  • 簡(jiǎn)介 測(cè)試目的:模擬多種可能性,減少錯(cuò)誤,增強(qiáng)健壯性,提高穩(wěn)定性。 測(cè)試種類:在iOS中的通常分為單元測(cè)試和UI測(cè)...
    i順頌時(shí)宜閱讀 9,151評(píng)論 0 39
  • 前言 單元測(cè)試和UI測(cè)試大致步驟網(wǎng)上很多文章都有,如果會(huì)的可以忽略,關(guān)鍵是錯(cuò)誤總結(jié),網(wǎng)上很少有文章提及到,感興趣的...
    _YGL_閱讀 5,192評(píng)論 20 23
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,776評(píng)論 18 139