在我的主目标中有一个依赖注入管理器。在我的测试中,我在大多数地方手动注入。但是,我目前正在添加UI测试,需要在测试目标中加载一个图像加载器,它将加载一个本地占位符,而不是进行网络调用。
我希望第二个具体实现不是主目标的一部分,而只是测试目标的一部分。我的问题是,我找不到一个地方来设置测试目标中的依赖注入管理器,以使用仅在测试中定义的类。
main.swift不能创建测试图像加载器的示例,因为它不是main目标的一部分,而且在执行任何测试用例之前似乎没有任何代码段在运行。
有没有办法在测试目标中以不同的方式设置依赖注入管理器,或者我在这里完全走错了路?
为了给予更多的上下文,图像加载器在很多地方使用,有时嵌套在子视图的子视图中,或者也嵌套在tableView / collectionView单元格中。在测试中的任何地方手动注入该加载器将是相当痛苦的。
谢谢你抽出时间
1条答案
按热度按时间wljmcqd81#
你总是可以使用一个静态类。但是基本上,在测试之间共享状态不是一个好主意。所以最好在你的
XCTestCase
的setUp()
中初始化你的依赖管理器。如果你不想重用它,简单地提取这个代码到单独的工厂/汇编类中。