【发布时间】:2022-10-22 23:04:40
【问题描述】:
假设我们的 SUT(A 类)具有依赖项(IDependency),并且我们为某些操作(返回 bool 值的方法 A)创建带有固定答案的存根。
通过这种方式,我们揭示了 SUT 的一些实现细节(使用方法 A 的 SUT),如果我们想在不破坏原始行为的情况下重构 SUT(而不是使用方法 B 的方法 A,该方法也返回 bool 值)。
根据 Vladimir Khorikov 的书(单元测试),我们的测试对重构没有抵抗力。
问题是: 存根会使测试变得脆弱吗?
【问题讨论】:
-
每当您模拟/存根/伪造依赖项的逻辑时,您就有可能无法真正匹配它的真实行为。事情就是这样运作的。
-
风险在于,每次我重构代码时,我的测试都会失败,因为我在夹具设置中设置了方法 A 而不是方法 B。我的测试失败但 SUT 工作正常(误报)
标签: unit-testing testing automated-tests stub test-double