这可能是一个很愚蠢的问题,因为我是第一次尝试TDD。我喜欢它带来的信心以及代码的总体上更好的结构,但是当我开始将其应用于比一类玩具示例更大的东西时,我遇到了困难。
假设您正在编写各种各样的库。您知道它必须要做的事情,您知道应该如何实现它的一般方法(从体系结构角度来说),但是您不断“发现”需要在编写代码时对公共API进行更改。也许您需要将此私有方法转换为策略模式(现在需要在测试中通过模拟的策略),也许您错失了职责,并拆分了一个现有的类。
当您在现有代码上进行改进时,TDD似乎非常合适,但是当您从头开始编写所有内容时,除非您进行了较大的设计,否则编写测试的API有点“模糊”。当您已经对该签名进行了30次测试的方法(对于该部分而言,其行为)更改时,该怎么办?一旦合并起来,有很多测试需要更改。