许多开发人员正在使用测试驱动开发(TDD)设计他们的应用程序,但我想知道我应该在哪个阶段将TDD合并到我的项目中?我应该首先设计我的类,进行一些单元测试并确定需要哪些方法或首先设计方法,然后再进行一些单元测试?
最好的方法是什么?
TDD是一种编码和设计中的小技术.这不是一个大画面的设想技术.如果你开始编写应用程序,你想要做一些故事板,线框,甚至一些简单的草图.您应该了解更大规模的设计,即系统中的类和关系.在你开始进行交互设计(例如方法和参数)之前,你开始做TDD.
你已经完成了线框会给你一个想法的系统应该如何出现.大规模设计将让您了解要创建的类.但是,这些模型都不应被视为正确或永久.在编写测试时,您会找到更好的设计思路,这些思路将改变您的高级设计,甚至是您的线框设计.
测试驱动的重点是测试驱动设计和实现.
在某些情况下这是不合适的 - 它可能是明显的设计应该是什么样的,特别是如果它实现了现有的接口(或一些类似的限制选择)但是当你有一个大的"设计空间"时TDD鼓励你写测试演示了您希望如何使用该课程,而不是从您的角度出发,您认为您希望如何实现它.
通常,如果某些东西易于测试,它将很容易使用.
测试驱动设计的口号:
创建测试.
编译测试(并验证它是否失败)
写界面
编译测试(现在应该编译)
运行测试(现在应该失败)
写代码
编译/运行测试(现在应该同时执行)
重复每个项目.