iOS 的單元測試如何處理包含 http 請求的類?

時間 2021-06-01 15:35:16

1樓:skytraveler

技術上可以mock掉http的response.這樣就可以乾掉外部依賴了試試ocmock,自己想實現可以搜一下NSURLProtocol,自己做個乙類也能按照你想要的處理http請求和返回。但是你確定你是在做單元測試麼?

2樓:Hank Bao

編寫單元測試需要注意的一點是責任分離。即你的測試只需要針對特定單元內部的羅輯,至於其他模組是否正確,是由該模組的編寫者來負責測試的。

把這一點應用到你的場景,就能看出HTTP通訊的實現並不屬於你的類的羅輯。不管是用第三方的ASIHTTPRequest/AFNetworking,還是用系統的NSURLConnection,這些類本身的介面不需要你來寫單元測試。所以應該用Mock來替換掉所有對這些物件的方法呼叫。

測試用例可以包括檢測pingback內容是否符合要求、是否按照正確的順序進行了響應等,包含預期的正確結果和錯誤處理。

測試用例的粒度就看實際專案對測試的要求了。粗粒度的話可以針對特定類的所有公開介面做測試;細粒度的話可以針對類內部的私有方法做測試。實際開發中我覺得只要保證含有複雜羅輯的方法有足夠的測試覆蓋就可以了,並不需要嚴格按照TDD來執行。

畢竟為太過直白簡單的類編寫單元測試既不會提公升質量,也不能提振開發者信心。

如何單獨編譯chrome單元測試?

你我 首先根據你給的這個鏈結,我們可以知道這是個unit test,chromium的C unit test是所謂的GTest。然後我們就去http cs.chromium.org 搜這個檔案的名字,看看它在哪個gn target,發現這個東西是net unittest的一部分。那麼假設你已經知道怎...

如何對vue js單檔案( vue)進行單元測試?

HDDDDD 如果你需要一些工具可以看看這篇總結文章 5個用於測試Vue.js應用程式的有用工具和庫我自己用 React 比較多,測試用的 jest,如果用的 React 可以看看這篇文章 前端測試 1 庫 框架 概念 Jest enzyme sinon nock 非同步資料API盡量單獨提取檔案,...

通過MVVM進行iOS開發中,如何處理網路請求?

Martin Jack 首先明確一點 沒有使用 ReactiveCocoa,也可以實現 MVVM 架構方式.分別解釋 MVVM 在 iOS 架構方式中的作用 M Model 層,資料層,這裡做一些對基礎實體的定義,資料的遠端獲取,對本地資料的操作等 V View 層,檢視展示層,有些人傾向於將 Vi...