【发布时间】:2020-07-09 22:19:12
【问题描述】:
我目前正在学习 TDD,我想知道 Bob 叔叔关于与 TDD 相关的 refato step 的句子的真正含义。该主题讨论了 TDD 中的测试反方差,来自他的 Clean Coder 博客。
上下文: 假设我开始编写一个新类。称它为 X。我首先编写了一个名为 XTest 的新测试类。 随着我向 XTest 添加越来越多的单元测试,我向 X 添加了越来越多的代码,并通过从 XTest 调用的原始函数中提取私有方法来重构该代码。
然后我也必须重构测试。 (这是我误会的地方)
关于这一步,鲍勃叔叔说:
我研究了 XTest 和 X 之间的耦合,并努力将其最小化。我可以通过向 X 添加构造函数参数或提高传递给 X 的参数的抽象级别来做到这一点。我什至可以在 XTest 和 X 之间强加一个多态接口。
我的问题是: 如何识别耦合? 他所说的“将构造函数参数添加到 X 或提高我传递给 X 的参数的抽象级别”是什么意思?和“XTest 和 X 之间的多态接口”。
非常欢迎提供示例代码! :):)
相关博客文章的链接:https://blog.cleancoder.com/uncle-bob/2017/10/03/TestContravariance.html
提前致谢。
【问题讨论】:
标签: unit-testing testing refactoring tdd contravariance