(譯)對于Objective-C來說 Unit Testing的價值是什么?

對于Objective-C來說 Unit Testing的價值是什么?

最大的問題是“對于Objective-C來說 Unit Testing的價值是什么比原?”

服務(wù)端的小伙伴會Mock整個數(shù)據(jù)庫仲义,僅僅為了測試一條類似于“Hello World” 的SQL語句踱葛。
在iOS中,你需要如此的仔細嗎光坝?這大概是不需要的尸诽。
你需要將單元測試覆蓋到iOS項目中的每一行代碼嗎?這毫無疑問是不需要的盯另。

那么性含,讓我們來看下,你應(yīng)該怎樣決定你的測試計劃鸳惯。

單元測試有兩個目的:

  • 首先也是最重要的(從我的觀點來說)它可以幫你保持類的小而精商蕴。
  • 其次,它可以為你提供自動化測試芝发,這是非常有用的绪商。

為什么我這么說?
如果你嘗試編寫一個類去通過某個API來獲取數(shù)據(jù)辅鲸,你會從對它行為的一些猜測來開始開發(fā)格郁。
使用這個類,會依賴這些假設(shè)独悴。假如你過了幾個月忘記這些假設(shè)是什么例书,那么如果你更改了關(guān)于網(wǎng)絡(luò)請求的代碼,你很有可能在某個地方改變了之前的邏輯刻炒。這些可能發(fā)生在你毫不知情的情況下决采。

你應(yīng)該通過手動還是自動去測試你的App?它并不意味著你需要將單元測試覆蓋整個APP坟奥,但是在發(fā)版本之前树瞭,你應(yīng)該測試一些關(guān)鍵之處,那么為什么還要通過手動做這些呢而不選擇自動測試呢爱谁?

Matt Gemmell 曾經(jīng)寫過“thou shalt suffer no bugs to ship”(發(fā)版時必須不要有任何Bug)晒喷,我認為他說的很對,并且我也是這樣做的 管行。他也說到厨埋,無論你用哪種機制去保證在發(fā)版時沒有bug,你只是需要有一種方法。Unit Tests荡陷, UI Acceptance Tests, 或者所有的測試都通過手動解決(但是這將會花費大量時間)雨效。 Unit Test 或者UAT更加迅速。

上面說的所有都是“對于Objective-C來說Unit Testing的價值是什么废赞?”這個話題的開場白徽龟。
讓我們來思考一個好的架構(gòu)的iOS app。它被劃分為三個部分: Model唉地,View据悔,Controller。

426D1328D1E744999A88979FAF12C2C2.png


我有說 three parts耘沼? 我的意思是 three-ish(暫時沒搞清楚什么意思??)极颓。 App需要API 的調(diào)用,你也需要寫網(wǎng)絡(luò)請求的代碼群嗤。有的時候菠隆,代碼會從Model中分離,有時候也會包含在Model中狂秘,在可避免的情況下它應(yīng)該從不包含在View中骇径,或者包含在Controller中(這應(yīng)該永遠是可避免的)。

View和Controller自檢的相互作用不利于單元測試— 這些地方UAT可以幫你解決這個問題者春。 這篇文章并不會涉及這些破衔。

橙色的區(qū)域是單元測試最有作用的地方。Model和網(wǎng)絡(luò)請求代碼中钱烟。

你可以很容易的測試網(wǎng)絡(luò)請求代碼晰筛,去驗證你第一次寫它的時候關(guān)于它的假設(shè)。如果你的Model比較精煉忠售,你可能不會去測試传惠。然而,這些models可能在任何地方被創(chuàng)建和修改稻扬,所以,你應(yīng)該確保測試這些代碼羊瘩。

綜上所述:單元測試 Models 和網(wǎng)絡(luò)請求代碼泰佳。如果你覺得值得,那么用UAT去測試其他的尘吗∈潘可能手動測試Views和Controllers更加適合你的工作,特別是在比較小型的app中睬捶。

最后黔宛,無論你用哪種測試,請記錄它擒贸,并且編成文檔臀晃。這樣你就可以在發(fā)版之前手動測試它了觉渴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市徽惋,隨后出現(xiàn)的幾起案子案淋,更是在濱河造成了極大的恐慌,老刑警劉巖险绘,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踢京,死亡現(xiàn)場離奇詭異,居然都是意外死亡宦棺,警方通過查閱死者的電腦和手機瓣距,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來代咸,“玉大人蹈丸,你說我怎么就攤上這事÷卤常” “怎么了白华?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贩耐。 經(jīng)常有香客問我弧腥,道長,這世上最難降的妖魔是什么潮太? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任管搪,我火速辦了婚禮,結(jié)果婚禮上铡买,老公的妹妹穿的比我還像新娘更鲁。我一直安慰自己,他們只是感情好奇钞,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布澡为。 她就那樣靜靜地躺著,像睡著了一般景埃。 火紅的嫁衣襯著肌膚如雪媒至。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天谷徙,我揣著相機與錄音拒啰,去河邊找鬼。 笑死完慧,一個胖子當(dāng)著我的面吹牛谋旦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼册着,長吁一口氣:“原來是場噩夢啊……” “哼拴孤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起指蚜,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤乞巧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后摊鸡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绽媒,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年免猾,在試婚紗的時候發(fā)現(xiàn)自己被綠了是辕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡猎提,死狀恐怖获三,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锨苏,我是刑警寧澤疙教,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站伞租,受9級特大地震影響贞谓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜葵诈,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一裸弦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧作喘,春花似錦理疙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贰锁,卻和暖如春主之,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背李根。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留几睛,地道東北人房轿。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親囱持。 傳聞我的和親對象是個殘疾皇子夯接,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件纷妆、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,105評論 4 62
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理盔几,服務(wù)發(fā)現(xiàn),斷路器掩幢,智...
    卡卡羅2017閱讀 134,661評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,167評論 25 707
  • 近一個星期际邻,我看簡書比較多芯丧,一來剛到了新的工作崗位,適應(yīng)之余空閑時間也比較多世曾,二來對于半年前的選擇結(jié)果扔存在一起惋...
    未知的你閱讀 1,509評論 0 0
  • 文 | 潘俊宏 在2006年夏天的某一天缨恒,一個年輕人去街上買冰棍。平時他都是買一塊錢一根的冰棍轮听,那天也不知道什么原...
    潘俊宏閱讀 496評論 7 10