本章内容 定义一个单元测试 对比单元测试与集成测试 探索一个简单的单元测试示例 理解测试驱动的开发 凡事总有第一次:第一次编写程序,第一次项目失败,第一次通过努力获得成功。你不会忘记自己的第一次,我希望你也不忘记第一个测试。也许你已经写过一些测试,在你的记忆里那些测试也... 查看全部[ 1.1 逐步定义单元测试 ]
一个单元测试应当具有如下特征: 它应该是自动化的,可重复执行; 它应该很容易实现; 它应该第二天还有意义; 任何人都应该能一键运行它; 它应该运行速度很快; 它的结果应该是稳定的(如果运行之间没有进行修改的话,多次运行一个测试应该总是返回同样的结果); 它... 查看全部[ 1.2 优秀单元测试的特性 ]
任何测试,如果它运行速度不快,结果不稳定,或者要用到被测试单元的一个或多个真实依赖物,我就认为它是集成测试。例如,如果一个测试要使用真实的系统时间,真实的文件系统,或者一个真实的数据库,那这个测试就进入了集成测试的领域。 例如,如果一个测试不能控制系统时间,在代码中使用了当前时间DateTim... 查看全部[ 1.3 集成测试 ]
在讨论了单元测试应该具有的重要属性之后,我来给出单元测试的最终定义。 定义最终更新1.2 一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。单元测试几乎都是用单元测试框架编写的。单元测试容易编写,能快速运行。单元测试可靠、可读,并且可... 查看全部[ 1.4 什么是优秀的单元测试 ]
不用测试框架我们也可以编写一个自动化的单元测试。实际上,因为开发人员更习惯于将测试自动化,他们中很多人在知道有测试框架之前,就已经在做自动化的单元测试了。在本节中,我会展示没有框架是怎么编写自动化单元测试的,你可以把这个例子和第2章中使用框架的例子进行对比。 假设有一个类SimpleParse... 查看全部[ 1.5 一个简单的单元测试范例 ]
一旦了解了如何使用一个单元测试框架编写结构化、可维护和可靠的测试,下一个问题就是什么时候编写测试。很多人觉得为软件编写单元测试的最佳时机是软件编码完成以后,但是越来越多的人选择在产品代码编写之前写单元测试。这种方法称为测试优先或是测试驱动开发(Test-Driven Development,TDD)... 查看全部[ 1.6 测试驱动开发 ]
成功进行测试驱动开发,你需要三种技能集:知道如何编写优秀的测试、在编码前编写测试,以及良好的测试设计。 仅仅做到先编写测试,并不能保证测试是可维护、可读以及可靠的。你正在读的这本书讲的全都是进行优秀单元测试的技巧。 仅仅做到编写的测试可读、可维护,并不能保证你获得先编写测试的各种... 查看全部[ 1.7 成功进行TDD的三种核心技能 ]
在本章中,我定义了一个优秀单元测试应具有的特质,如下所示: 一段自动化的代码,它调用另一个方法,然后检验关于此方法或类的逻辑行为的某些假设; 用一个自动化测试框架编写。 容易编写。 运行快速。 能由开发团队里的任何人重复执行。 要理解什么是一个单元,你需要弄清楚自... 查看全部[ 1.8 小结 ]