我有一个相当大的MVC3应用程序,其中我已经开发了一个小的第一阶段,没有编写任何单元测试,目标是特别检测重构引起的回归等问题。我知道这样说有点不负责任,但到目前为止,并没有真正需要这么做,只需进行非常简单的CRUD操作,但我希望能够继续采用TDD方法。如何将现有MVC3应用程序的开发转换为TDD方法?
我已经基本完成了第一阶段,我已经写了行动和视图,其中成员可以注册为作者并创建课程模块。现在我有更复杂的阶段来实施课程的消费者和他们的受训者必须注册并完成课程,学术进展跟踪,作者反馈和财务影响。我觉得如果没有一个稳定的单元测试策略是不明智的,根据以往的经验,我认为TDD将非常适合我未来在这里的开发工作。
是否有已知的程序将开发工作“转换”为TDD,并将单元测试引入已编写的代码?我不需要幼儿园一步一步的东西,而是一般的战略指导。
顺便说一句,我已经在这个问题上包含了web开发和MVC标签,因为我相信这些开发领域可以对项目文物的单元测试需求产生重大影响。如果您不同意并希望删除其中的任何内容,请发表评论,说出原因。
TDD是关于设计驱动开发的,与单元测试不一样。请参阅http://bradwilson.typepad.com/blog/2009/04/its-not-tdd-its-design-by-example。html为您现有的代码和所有新的计划代码编写单元测试使用TDD(设计示例) – RickAndMSFT 2012-02-17 05:34:33
@ Rick.Anderson-at-Microsoft.com,谢谢,但我明白其中的差异。 TDD确实使用单元测试作为开发的驱动因素,TDD和单元测试都是我的问题的一部分。 – ProfK 2012-02-17 08:59:24
@ Rick.Anderson-at-Microsoft.com我将坚持TDD的原意,即“测试驱动开发”。我在XP团队工作了好几年。我们对此进行了很多讨论,并意识到在某些情况下,系统的大部分更改不是新代码,而是修改现有代码。 TDD在这里同样重要。 TDD经常产生单元测试,因为人们通常会嘲笑依赖来测试代码单元。 TDD确认了一个设计(这在你的脑海中)。由于TDD,您不一定拥有良好的设计。我不会将TDD的过程与设计的过程混淆。 – bloudraak 2012-02-17 18:48:11