我最近进入了一个测试覆盖率非常差的iOS团队(12%)。原因是没有代码隔离和模拟很难,因为与UI相关的大量代码位于控制器中,并且它们不会分离到不同的类中。
我正在尝试将依赖注入框架设置到此项目中,并预先考虑了代码覆盖率。
问题, 考虑我选择一个依赖注入框架,如Typhoon或Blood Magic或其他任何可用的东西。我可以分开做吗?就像一个ViewController一样。关于这个的任何提示?或者任何有助于实现这一目标的框架?该项目是一个大型项目,拥有大约150,000行代码。
任何帮助表示赞赏。我是iOS中的总菜鸟,但我理解依赖注入的概念,因为我在Windows应用程序开发中大量使用它。
答案 0 :(得分:1)
嗨@golldy欢迎加入iOS开发!
在体验方面,我似乎完全相反:我有很多iOS开发经验但只是阅读了依赖注入,因此我以某种方式对它不熟悉。 ;)
虽然似乎有一个Swift solution for dependency injection并且没有对iOS中的依赖注入进行任何估价,但我想指出在iOS中有很多方法可以将责任与控制器分离
我同意批评iOS中的重载和不可测试的视图控制器。但我更喜欢像Coordinator suggestion by Khanlou这样的解决方案。也许你想看看?
祝你的考试好运!
答案 1 :(得分:0)
在添加框架之前,请考虑使用Xcode中已存在的标准工具链。 Xcode使用接口构建器来构造接口和原型对象图,可以在运行时取消存档。要注入一些依赖项,只需在xib(或storyboard)中添加对象(NSObject),在inspector中填充Class属性,然后进行插座连接。 NSObject有一些方法可以用来控制unarciving过程:-awakeFromNib,-awakeAfterUsingCoder:等等。
您可以在此处找到有关nib文件的更多信息https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html,请参阅“对象加载过程”部分