理想情况下,在完美的 TDD 环境中,您将对代码中的所有内容进行测试 - 但有些人可能认为这是教条主义的,您认为不需要测试您的代码优先生成的数据库,所以不要这样做: ) . 你是开发者,做你想做的事。
我理解您对上述内容的感受,但是如果您想以真正的 TDD 风格进行开发,您需要在编写任何代码之前编写一个测试,然后编写代码以获得测试的“绿灯”。
基本工作流程如下(从您想要添加到应用程序中的任何内容开始DBContext
)
- 意识到您的 MVC 应用程序需要一个新功能
- 编写一个失败的测试(因为此时没有实际的代码)
- 编写您想要添加到应用程序的新功能
- 运行你的测试,如果测试通过,继续 5,如果失败,编辑代码并重复 4
- 根据需要重构并重新运行测试以确保一切通过
你会有很多测试,但只要你勤奋地维护这些测试,你就会有一个非常完善的应用程序。
在将 TDD 与 MVC(或可能的任何开发架构)一起使用时,请记住以下几点:
- 经常运行你的测试
- 确保您的测试在过去一次通过后全部通过(听起来很明显,但有些人很疯狂)
- 确保您可以轻松快速地运行测试,最好单击一两次即可运行测试。这将允许您更轻松地频繁运行它们 - 这就是测试的目的。
- 坚持下去,很容易变得懒惰,只是说,“是的,我知道这部分会起作用,不需要测试它”,但是当你在几周/几个月/几年后查看该代码时,你不会由于与它密切相关,您可能会不小心更改某些内容并运行项目的测试(因为它是使用 TDD 流程开发的)并注意到一切都通过了。但是,由于没有对您更改的部分进行测试,因此您没有证据表明代码全部按计划工作。这听起来很简单,但可以将其视为可能导致其他问题的被遗忘的“破窗”。
至于专门为 MVC 操作编写测试,我强烈推荐来自 MSDN 的本教程和这本书: Freeman 和 Sanderson 的Pro ASP.NET MVC 3 Framework(这是 MVC3 的一个整体很好的资源,包括 MVC3 的 TDD)。