《重构》读书笔记

《重构》学习笔记(03)-- 构建测试体系

2019-05-26  本文已影响0人  若隐爱读书

如果你想进行重构,首先的前提就是拥有一个可靠的测试环境。就算是自动进行重构的工具,也需要测试来保证代码的完整性与可靠性。

为什么需要单元测试?

怎样进行单元测试?

书中介绍的JUnit是针对JAVA开发的一款简洁高效的测试框架,但笔者目前从事前端开发工作,因此本段不做详细介绍。从事JQuery开发的同学可以使用QUnit进行单元测试,参考QUnit入门教程

要做什么单元测试?

单元测试任务包括:1 模块[接口测试];2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。

正常输入。例如字符串的Trim函数,功能是将字符串前后的空格去除,那么正常的输入可以有四类:前面有空格;后面有空格;前后均有空格;前后均无空格。
边界输入。上例中空字符串可以看作是边界输入。再如一个表示年龄的参数,它的有效范围是0-100,那么边界输入有两个:0和100。
非法输入。非法输入是正常取值范围以外的数据,或使代码不能完成正常功能的输入,如上例中表示年龄的参数,小于0或大于100都是非法输入,再如一个进行文件操作的函数,非法输入有这么几类:文件不存在;目录不存在;文件正在被其他程序打开;权限错误。

但是“任何测试都不能证明一个程序没有bug”。因此单元测试不必做到大而全,应该集中在可能出错的地方。总之,引入测试的目的就是"花合理的时间抓出大多数bug",而不是"穷尽一生抓出所有的bug"。

上一篇 下一篇

猜你喜欢

热点阅读