Swift中通过传入类作为函数参数实现依赖注入的单元测试方案咨询
依赖注入实现单元测试的伪代码示例
我明白你的思路方向——虽然可能还有调整空间,但为了给代码做单元测试,引入依赖注入(Dependency Injection)确实是个靠谱的办法,把遵循协议的类作为参数传入就能实现解耦,让测试变得更灵活。
下面是整理好的伪代码示例:
protocol LocalSavingProtocol { static func saveDataLocally() } class ProductionClass: LocalSavingProtocol { static func saveDataLocally() { print("actually save data") } } class TestClass: LocalSavingProtocol { static func saveDataLocally() { print("test saving...") } }
简单解释下这段代码的作用:
- 先定义了一个
LocalSavingProtocol协议,它规定了必须实现的静态方法saveDataLocally(),这相当于统一了“本地存储”这个行为的契约 ProductionClass是生产环境中会用到的类,它实现了协议的方法,执行真实的本地存储操作TestClass是专门为单元测试准备的类,同样遵守协议,但方法里只做测试相关的输出,这样在写单元测试时,你可以把这个类注入进去,不用操作真实的存储系统,就能验证逻辑是否正确
内容的提问来源于stack exchange,提问作者Denis Balko
相关产品推荐
相关产品推荐

