重构密码修改视图控制器:依赖替换与测试编写
1. 用模拟对象替换复杂依赖
在开发过程中, ChangePasswordViewController 类依赖于 PasswordChanger ,但在单元测试中直接调用实际的网络服务存在不可靠、速度慢和污染服务等问题。因此,我们需要打破这种依赖,使用协议来支持测试替身。
1.1 提取协议
在 PasswordChanger.swift 中定义一个空协议 PasswordChanging :
protocol PasswordChanging {}
然后在 ChangePasswordViewController 中,将 passwordChanger 属性的类型明确为 PasswordChanging :
private var passwordChanger: PasswordChanging = PasswordChanger()
此时 Xcode 会报错,提示 PasswordChanger 类型不符合 PasswordChanging 协议。我们可以让 PasswordChanger 直接遵循该协
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



