在本章中,我定义了一个优秀单元测试应具有的特质,如下所示: 一段自动化的代码,它调用另一个方法,然后检验关于此方法或类的逻辑行为的某些假设; 用一个自动化测试框架编写。 容易编写。 运行快速。 能由开发团队里的任何人重复执行。 要理解什么是一个单元,你需要弄清楚自己以前所做的是什么类型的测试。你发现以前所做的是集成测试,因为它测试的是一组互相依赖的单元。 掌握区分单元测试和集成测试的知识很重要。作为一个开发人员,你每天都会用到这一知识,以决定在何处测试、何时编写何种类型的测试,以及对一个具体的问题用哪种测试更好。这一知识也能帮助修复那些已经令你头疼不已的测试。 我们还了解了不使用框架进行集成测试的缺点:这种测试很难编写及自动化,运行缓慢,需要进行配置。虽然在项目中的确需要集成测试,但单元测试能够在开发过程的早期提供更多的价值,在这个阶段缺陷较小,更容易发现,需要检查的代码也比较少。 最后,我们探讨了测试驱动开发,包括它与传统编码方式有什么不同之处,以及它有哪些基本好处。TDD能帮助你确保测试代码的代码覆盖率(你的测试调用了多少产品代码)非常高(逻辑代码覆盖率接近100%),确认测试可信。它让你看到测试在预期的时候成功或者失败,以此来“测试你的测试”。TDD还有其他的许多好处,例如辅助代码设计,降低代码复杂度,帮助你逐步解决难缠的问题。但是如果你不知道怎么编写优秀的测试,就不可能持续地成功实践TDD。 在下一章里,你将学习使用.NET开发者最常用的单元测试框架NUnit,开始编写你的第一个单元测试。