2016-03-17 129 views
1

我來自Windows手機應用程序開發,我是iOS應用程序開發的新手。因此,請在Windows平臺上與Caliburn micro進行比較,以瞭解與依賴注入相關的問題。我正在尋找iOS中的最佳做法。iOS依賴注入框架(最佳實踐)

當前項目。 我最近進入了一個iOS團隊,測試覆蓋率非常差(12%)。原因在於沒有代碼隔離,而且模擬很困難,因爲與UI相關的大量代碼位於控制器中,並且它們沒有分離到不同的類中。

我想獲得一個依賴注入框架設置到這個項目中的代碼覆蓋率預先考慮。

問題, 考慮我選擇了像Typhoon或Blood Magic之類的依賴注入框架或其他任何可用的依賴注入框架。我能夠一部分做到嗎?像一個ViewController一次。有關於此的任何提示?或任何有助於實現這一目標的框架?這個項目是一個包含大約150,000行代碼的大項目。

任何幫助表示讚賞。我在iOS中總是noob,但我理解依賴注入的概念,因爲我在Windows應用程序開發中大量使用它。

回答

1

嗨@golldy,歡迎來到iOS開發!

看來我完全相反:我有很多iOS開發經驗,但只是閱讀了依賴注入的內容,因此我以某種方式對它有所瞭解。 ;)

雖然似乎連Swift solution for dependency injection,也沒有留下有關依賴性注入的任何估值的iOS我想指出,有很多方法可以從你的控制器 iOS中分離責任。

我同意對iOS中重載和不可測試視圖控制器的批評。但我更喜歡像Coordinator suggestion by Khanlou這樣的解決方案。也許你想看看?

祝您的測試順利!

P.S: 注意Quick是編寫測試(提高可讀性,更DRY代碼)的熱門推薦和框架

0

在添加框架之前,請考慮使用Xcode中已經存在的標準工具鏈。 Xcode使用接口構建器來構造接口和原型對象圖,可以在運行時取消存檔。爲了注入一些依賴項,只需在xib(或storyboard)中添加對象(NSObject),在inspector中填充Class屬性,並進行插座連接。 NSObject有一些方法可以用來控制匿名進程:-awakeFromNib,-awakeAfterUsingCoder:等等。

更多關於nib文件的信息,請點擊這裏https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html外觀對象加載過程部分