国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

iOS9每天多了解一點(diǎn)5:Xcode Code Coverage Tools

移動(dòng)開(kāi)發(fā)
Code coverage 是一個(gè)計(jì)算你的單元測(cè)試覆蓋率的工具。高水平的覆蓋給你的單元測(cè)試帶來(lái)信心,也表明你的應(yīng)用被徹底的測(cè)試過(guò)了。你可能寫(xiě)了幾千個(gè)單元測(cè)試,但如果覆蓋率不高,那么你寫(xiě)的這套測(cè)試可能價(jià)值也不大。

[[144518]]

Code coverage 是一個(gè)計(jì)算你的單元測(cè)試覆蓋率的工具。高水平的覆蓋給你的單元測(cè)試帶來(lái)信心,也表明你的應(yīng)用被徹底的測(cè)試過(guò)了。你可能寫(xiě)了幾千個(gè)單元測(cè)試,但如果覆蓋率不高,那么你寫(xiě)的這套測(cè)試可能價(jià)值也不大。

這里并沒(méi)有一個(gè)確切的百分比,要求你必須到達(dá)這個(gè)覆蓋率。這很大程度上取決于你的項(xiàng)目(的具體情況)。譬如說(shuō),如果你的項(xiàng)目中有很多不能寫(xiě)單元測(cè)試的視覺(jué)組件,那么覆蓋率就會(huì)比單純處理數(shù)據(jù)的框架要低的多。

Code Coverage in Xcode

在過(guò)去,如果你想要制作一個(gè)測(cè)試的代碼覆蓋報(bào)告出來(lái),需要設(shè)置很多[選項(xiàng)]。非常復(fù)雜,還有許多需要手動(dòng)設(shè)置。在 iOS 9中,蘋(píng)果提供了智能的代碼覆蓋工具,他是和 LLVM 一體的,每次運(yùn)行測(cè)試都會(huì)被調(diào)用和計(jì)算。

Using the Code Coverage Tools

現(xiàn)在我們用一個(gè)例子來(lái)展示,如何使用新的 code coverage 工具和怎樣提升現(xiàn)在的測(cè)試用例。完成后的代碼放在了 Github 上,你可以跟著做。

***件事是創(chuàng)建一個(gè)新項(xiàng)目,并確認(rèn)你選上了Unit tests選項(xiàng)。這會(huì)按要求創(chuàng)建一個(gè)默認(rèn)項(xiàng)目,現(xiàn)我們需要測(cè)試點(diǎn)什么。這個(gè)測(cè)試可能是你的任意需求,這里我添加一個(gè)空的 swift 文件,里面寫(xiě)好了一個(gè)全局的方法。這個(gè)方法檢測(cè)兩個(gè)字母串是否是僅排序不同的相同字母組成的詞。寫(xiě)成全局的方法,可能不是好的設(shè)計(jì),但這里我們僅演示一下。

這是一個(gè)相對(duì)簡(jiǎn)單的方法,所以我們可能會(huì)得到一個(gè)沒(méi)有任何問(wèn)題的,100%覆蓋的測(cè)試覆蓋率。

check word

 

一旦你寫(xiě)好了算法,就該寫(xiě)個(gè)測(cè)試了。打開(kāi)項(xiàng)目創(chuàng)建時(shí)已經(jīng)創(chuàng)建好了的默認(rèn)的XCTestCase,添加一個(gè)下面的簡(jiǎn)單的測(cè)試方法。他看起來(lái)是這樣子的。

tests

 

在運(yùn)行測(cè)試之前,我們必須先確認(rèn) code coverage 是否被打開(kāi)了,寫(xiě)代碼時(shí),默認(rèn)是關(guān)閉的。所以你需要編輯一下你的測(cè)試 scheme,把它打開(kāi)。

turn on coverage

 

確保"Gather coverage data"是被選中的,然后點(diǎn)擊關(guān)閉按鈕,運(yùn)行測(cè)試的 target. 我們希望剛剛創(chuàng)建的測(cè)試用例能夠順利通過(guò)。

The Coverage Tab

一旦這個(gè)測(cè)試通過(guò)了,你就能知道 checkWord 這個(gè)方法,至少有一條路徑是對(duì)的。但你不知道的是,還多多少?zèng)]有被測(cè)試到。這就是code coverage這個(gè)工具的好處。當(dāng)你打開(kāi)code coverage tab后,你可以清楚的看到測(cè)試的覆蓋情況。他們按找 target, file, function 進(jìn)行了自動(dòng)分組。

打開(kāi)Xcode左邊窗口的Report Navigator面板,選中你剛運(yùn)行的測(cè)試。然后在tab中選中 Coverage。

test coverage panel

 

這會(huì)展示一個(gè)你的類(lèi)、方法的列表,并標(biāo)示出每個(gè)的測(cè)試覆蓋率。如果你將鼠標(biāo)懸停在checkWord這個(gè)方法上,你可以看到測(cè)試的覆蓋率是28%。不能接受啊!我們需要找到,那些代碼分支是能夠被測(cè)試執(zhí)行,那些是不能的,進(jìn)而改善他們。雙擊方法的名字,Xcode會(huì)打開(kāi)類(lèi)的代碼,并且看到code coverage的情況。

coverage result

 

白色的區(qū)域表示這些代碼時(shí)測(cè)試覆蓋過(guò)的。灰色區(qū)域時(shí)測(cè)試無(wú)法覆蓋的,我們需要添加更多的測(cè)試用例來(lái)覆蓋灰色部分的代碼。在右手邊的數(shù)字,表明這些代碼塊,在這次測(cè)試中被執(zhí)行的次數(shù)。

Improving Coverage

很顯然,28%的覆蓋率不是我們的目標(biāo)。這里沒(méi)有 UI,看起來(lái)是個(gè)***的編寫(xiě)測(cè)試用例的候選function。所以,我們添加一個(gè)測(cè)試用例。理想情況下,我們希望每個(gè)分支都能被測(cè)試到。這樣就能達(dá)到完整的覆蓋。添加下面的測(cè)試用例到你的測(cè)試類(lèi)中。

test cases

 

這些測(cè)試用例應(yīng)該能夠完全覆蓋我們的代碼了。運(yùn)行一下單元,然后打開(kāi)***一個(gè)測(cè)試報(bào)告。

the final coverage result

 

我們成功了,100%的覆蓋率。你可以看到整個(gè)代碼都變成了白色,右面的數(shù)字也展示了每個(gè)代碼段至少被執(zhí)行了一次。

使用code coverage是一個(gè)非常棒的方式,幫你建立真正有價(jià)值的測(cè)試組合。遠(yuǎn)好于你寫(xiě)了很多測(cè)試用例,但沒(méi)有真正測(cè)試到代碼。Xcode 7 讓這種方式變的非常簡(jiǎn)單,我推薦你在項(xiàng)目中開(kāi)啟 Code Coverage。即使你已經(jīng)寫(xiě)好了測(cè)試,也可以幫你知道到底測(cè)試寫(xiě)的怎么樣。

延伸閱讀

更多關(guān)于Xcode 7 中 Code Coverage 工具的內(nèi)容,我推薦你觀看 WWDC 2015 的session 410 Continuous Integration and Code Coverage in Xcode.***,別忘了如果你想要試試我們上面的例子,可以在 Github 中找到他。

責(zé)任編輯:倪明 來(lái)源: Shinobi Controls
相關(guān)推薦

2015-07-27 09:04:33

ios9

2015-08-03 10:03:09

iosuistack vie

2015-07-21 16:43:13

IOSUI

2015-07-17 11:12:43

IOS搜索API

2021-06-02 18:46:13

監(jiān)控日志Prometheus

2011-03-15 10:41:05

內(nèi)部類(lèi)

2015-07-16 12:59:19

IOS9UIDynamics

2015-10-16 14:27:29

iOS9collectionV特性

2015-09-16 09:55:12

ios9學(xué)習(xí)UIKit Dynam

2015-09-25 09:44:24

ios9MapkitTrans

2015-07-02 17:32:28

iOS 9蘋(píng)果

2015-08-20 09:00:23

ios9api

2015-08-24 09:24:21

ios學(xué)習(xí)contacts fr

2015-08-07 09:06:50

ios9更新

2015-09-22 10:15:19

CocosXcode 7iOS9

2021-05-20 09:11:00

5G5G網(wǎng)絡(luò)5G終端

2016-03-18 11:19:57

ios9replaykit入門(mén)

2015-08-31 11:10:52

ios9內(nèi)容攔截器

2019-04-16 15:05:59

ServerlessIT基礎(chǔ)局域網(wǎng)

2019-06-17 06:18:27

邊緣計(jì)算物聯(lián)網(wǎng)霧計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

91麻豆精东视频| 美女在线视频一区二区| 欧美日韩一区自拍| 国产一区二区三区四区五区加勒比| 亚洲国产精品日韩专区av有中文 | 亚洲欧美日韩综合网| 成人免费一区二区三区在线观看| 日本成本人片免费观看| 亚洲欧洲性图库| 亚洲欧美另类图片| 欧美日韩小视频| 免费毛片在线看片免费丝瓜视频| 欧美变态tickle挠乳网站| 深夜av在线| 久久亚洲电影天堂| 精品福利一区| 成人三级在线| 国产中文字幕精品| 欧美激情成人网| 日韩欧美精品在线观看| gogo高清在线播放免费| 欧美精品在线网站| 不卡在线一区二区| 欧洲精品亚洲精品| 国产区在线观看成人精品 | 国产成人午夜性a一级毛片| 一区二区欧美日韩视频| 网红女主播少妇精品视频| 91pron在线| 丰满亚洲少妇av| 日本1区2区3区中文字幕| 欧美色男人天堂| 国产精品亚洲一区二区在线观看| 国产精品久久久久久久7电影| 新狼窝色av性久久久久久| 男女日批视频在线观看| 五月激情综合色| 亚洲精品mv| 国产精品高潮呻吟久久av黑人| 欧美 日韩 国产精品免费观看| 黄色污污在线观看| 一区二区三区精品在线| 91色在线看| 日本精品在线视频| 免费av网站大全久久| av免费网站观看| 制服丝袜亚洲网站| 欧美福利在线播放网址导航| 天堂精品视频| 亚洲午夜精品一区二区三区他趣| 欧美日韩精品免费观看视完整| 国产免费一区视频观看免费 | 色婷婷av一区二区三区之一色屋| 国产精品xxx| 精品一区二区三区国产| 欧美激情资源网| 黄频免费在线观看| 成人在线视频网| 国产精品三级av在线播放| 成人福利片网站| 国产精品扒开腿做爽爽爽的视频| 国产盗摄女厕一区二区三区| 国产精品视频一区二区久久| 韩剧1988免费观看全集| 国产米奇在线777精品观看| 国产天堂素人系列在线视频| 韩国一区二区电影| 国产成人自拍网| 成人在线高清免费| 粉嫩av免费一区二区三区| 亚洲精品成人少妇| 中文字幕一区二区三区日韩精品| 国产又黄又爽免费视频| 欧美午夜在线一二页| 日韩欧美不卡| 男人添女人下面免费视频| 日韩在线视频国产| 黑人巨大精品欧美一区| 国产女人在线视频| 成人xxxxx| 国产精品不卡一区二区三区| 日韩大陆av| 精品国产一区二区三区无码| 欧美α欧美αv大片| 亚洲欧洲日本mm| 草碰在线视频| 都市激情久久久久久久久久久| 亚洲r级在线视频| 日韩在线看片| 永久免费不卡在线观看黄网站| 欧美夜福利tv在线| 欧美国产亚洲另类动漫| 午夜免费欧美电影| 国产乱子夫妻xx黑人xyx真爽| 在线电影av不卡网址| 成人综合婷婷国产精品久久| 欧洲一级精品| 91在线色戒在线| 亚洲人成网站影音先锋播放| 成人国产精品入口免费视频| 一本二本三本亚洲码| 日韩黄色av网站| 国产盗摄一区二区三区| 91成人在线| 狠狠爱免费视频| 韩日精品中文字幕| 亚洲色图欧洲色图| 国产精品片aa在线观看| 伊人春色在线| 国产精品污www一区二区三区| 欧美电影影音先锋| 日韩中文字幕麻豆| 中文字幕影音在线| 奇米精品一区二区三区| 久久久女女女女999久久| 亚洲国产欧美在线| 亚洲欧美清纯在线制服| 2022成人影院| 美女网站免费观看视频| 国产精品伦子伦免费视频| 色婷婷av一区二区三区之一色屋| 国内自拍一区| 中文字幕 在线观看| 国产三级日本三级在线播放| 国产精品678| 欧美不卡123| 久久久久久久av麻豆果冻| 欧美国产美女| 蜜桃视频www网站在线观看| 欧美激情成人网| 91免费综合在线| 亚洲精品电影网站| 中文字幕一区二区三区精华液| 久久久9色精品国产一区二区三区| heyzo一区| 91国内精品在线视频| 久草精品电影| 久久亚洲精品成人| 在线视频一区二区三| 成人在线综合网| 欧美电影《睫毛膏》| 欧美另类老肥妇| 独立日3在线观看完整版| 欧美三级华人主播| 国语对白做受69| 精品少妇一区二区三区视频免付费| 久久精品人人做人人综合| 伊人影院久久| 国产日韩欧美中文在线| 尤物在线视频| 午夜宅男在线视频| 三区精品视频观看| 欧美在线视频导航| 亚洲精品视频在线播放| 精品国产1区2区| 97精品国产露脸对白| 久久国产免费| 国产99精品一区| 亚洲成人短视频| 69久久精品| 三级在线视频观看| 亚洲图片小说在线| 成人免费视频网| 久久99热精品| 亚洲第一精品福利| 91国内精品野花午夜精品 | 色婷婷亚洲mv天堂mv在影片| 国产韩日精品| 自拍视频在线播放| 秋霞福利视频| 国产免费成人在线| 亚洲欧美日产图| av观看久久| 国产精品一区二区三区在线播放| 色阁综合伊人av| 亚洲成人亚洲激情| 在线亚洲欧美专区二区| 亚洲天堂免费在线观看视频| 国产剧情一区二区| 日本免费在线视频不卡一不卡二| 欧美a级片一区| 日韩精品1区| 久久大胆人体视频| 91精品国产色综合久久不卡粉嫩| 91九色国产在线播放| 免费在线观看av| 欧洲一级在线观看| 国产最顶级的黄色片在线免费观看| 日韩精品视频一区二区在线观看| 手机看片日韩国产| 亚洲砖区区免费| 蜜桃av久久久亚洲精品| 日韩欧美精品三级| 亚洲一区免费视频| 国产精品护士白丝一区av| av激情综合网| 99久久99久久精品免费观看| 国产不卡免费视频| 99麻豆久久久国产精品免费优播| 黄一区二区三区|