TDD假定接口已经定义; 如何应对?

900*_*000 6 tdd

要在代码之前编写测试,您需要有一种方法来与代码进行交互.测试倾向于提前定义接口,以便可以编写测试.

但是,经常开发一个好的实现包括发明一组良好的组件间接口,多次调整和重新构建这些接口.在此期间,您要么继续重写测试代码的好部分,要么让测试落后于代码.

有没有最好的做法来缓解这种情况?

Per*_*ell 14

这听起来像整个红绿重构循环.也就是说,TDD - 有点 - 关于这种接口的重写.这使他们保持精益和重点.一旦你掌握了TDDing,并且你编写面向接口的测试,并保持你的对象很小,你不应该看到很多变化,除非你遇到一些不可预测的东西,必须适应,这是敏捷的点(这是希望你为什么TDDing)

听起来有点像你一次性定义整个界面.哪个是错的.一个测试应该在接口中生成一个函数,并且它是预期的行为.您的界面将与测试套件一起增长,从而最大限度地减少任何反向修补.


Car*_*ter 5

正如您编写测试一样,您正在测试的代码已经编写好了,您可以(并且应该)编写它们,就好像已经编写了接口一样.这是测试驱动设计设计部分 - 最重要的部分.您知道您正在考试的课程要求您提供哪些功能; 编写测试,好像该功能已经存在.您在测试中使用的名称和参数; 你自然会想到的是,作为代码和接口的客户端进行测试; 这些元素在您的类及其界面的设计中占有突出地位.