【发布时间】:2017-02-27 19:18:03
【问题描述】:
我正在尝试练习 TDD。
我的理解是TDD应该是这样的
- 为我要开发的接口/类写一个测试列表。
- 从我的测试列表中最简单但未实现的测试开始。
- 编写测试,还没有实现代码。
- 编写类的接口,使代码编译。
- 运行测试导致一项测试失败。
- 编写使测试通过的实现。
- 重构我造成的混乱。
- 转到 2。
我遇到的问题是在编写实现或进行重构时。我经常得出的结论是,我刚刚编写的实现应该委托给另一个类。
此时真正的 TDD 应该做什么?
- 暂时搁置现有的测试列表,然后为新发现的课程创建一个新列表(在实施新课程的课程时会出现同样的问题)
- 采用基于交互的测试方式并模拟新类,继续处理您正在处理的类的测试用例,稍后再返回以创建模拟类的正确实现。
- 这种情况不应出现。我可能还没有很好地考虑我的初始设计。 (但这不会违背 TDD 的目的之一吗?!)。
我很想知道其他人如何处理这些情况。
【问题讨论】: