c# - iOS 依赖注入(inject)框架(最佳实践)

标签 c# ios objective-c dependency-injection caliburn.micro

<分区>


想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post .

已关闭 4 年前

我最近加入了一个 iOS 团队,该团队的测试覆盖率非常糟糕(12%)。原因是没有代码隔离,并且模拟很困难,因为与 UI 相关的大部分代码都位于 Controller 中,并且它们没有分离到不同的类中。

我正在尝试在该项目中设置依赖项注入(inject)框架,并预先考虑提高代码覆盖率。

问题, 假设我选择依赖注入(inject)框架之一,例如 Typhoon 或 Blood Magic 或任何其他可用的框架。我可以一部分一部分地做吗?就像一个 ViewController 一样。这方面有什么建议吗?或者任何有助于实现这一目标的框架?这个项目是一个大项目,大约有15万行代码。

感谢任何帮助。我在 iOS 方面是个菜鸟,但我了解依赖注入(inject)的概念,因为我在 Windows 应用程序开发中大量使用了它。

最佳答案

你好@golldy,欢迎来到 iOS 开发!

在经验方面,我似乎与您完全相反:我有很多 iOS 开发经验,但只是阅读了有关依赖注入(inject)的内容,因此在某些方面我是新手。 ;)

虽然似乎还有一个Swift solution for dependency injection在不对 iOS 中的依赖注入(inject)做任何评价的情况下,我想指出在 iOS 中有很多方法可以将责任与 Controller 分离

我同意对 iOS 中重载且不太可测试的 View Controller 的批评。但我更喜欢像 Coordinator suggestion by Khanlou 这样的解决方案.也许你想看一看?

祝你测试顺利!

附言: 注意 Quick是一个流行且值得推荐的编写测试的框架(提高了可读性和更多DRY 代码)。

关于c# - iOS 依赖注入(inject)框架(最佳实践),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36070076/

上一篇:ios - 线程 1 : SIGABRT Error when testing FB Login in XCODE

下一篇:ios - 由于安全问题,无法在 iOS 中打开 HTTP 链接

相关文章:

javascript - 在 UIWebView 中进行多项选择的 HTML 文件输入不适用于视频

ios - 如何实现iOS应用的自动演示?

ios 8 UIIMagePickerController 在 iPhone 6 中交替显示黑色预览屏幕

c# - WPF : type special characters 中带有 TextBox 的 TreeViewItem

c# - 使用 LINQ 处理文本文件

c# - 迭代作业列表以打印职位、姓名、雇主、职位和核心能力

ios - 仅从日期时间/日期选择器中快速按日期过滤

ios - 移动 iOS 后单击时按钮消失

iphone - 获取地址簿 ios 5、ios 4.3 错误

c# - 如何使用 AForge 录制和保存网络摄像机的视频?