繁体   English   中英

Swift-单元测试中的依赖注入

[英]Swift - Dependency injection in unit test

这是我第一次快速使用依赖项注入,这就是我的方法,我有一个在appDelegate中初始化的dataManager,然后传递给我的第一个视图控制器,然后每当它们被推到其他视图控制器时,它将传递给其他视图控制器屏幕:

  if let navigationCtrl = window?.rootViewController as? UINavigationController {

        if let firstViewController = navigationCtrl.topViewController as? FirstViewController {
            firstViewController.dataManager = dataManager
        }
    }

现在,一切正常,但是当我测试每个视图控制器时,我总是使dataManger为零,并且我知道这是因为我首先给出的条件。 因此,有没有办法确保topViewController始终具有dataManager变量而不继承自另一个ViewController。谢谢

其中之一正在发生:

  • window nil
  • window?.rootViewController不是UINavigationController
  • navigationCtrl.topViewController不是FirstViewController
  • firstViewController.dataManagernil

它应该是一个简单的调试。 放置一些断点和/或print语句以了解问题出在哪里。

提示):

  • 确保在XCode / Interface-Builder中正确设置视图控制器的类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM