单元测试是开发者编写的一小段代码,用于检验被测试代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。例如,一个函数的功能是取得所指定范围数字内所有的素数,在测试代码中给一个测试数字范围,看函数的输出是不是你想要的结果,如果不是,则说明函数有问题。
编写代码时,一定会反复调试保证它能够编译通过。但通过编译代码的代码,只是说明了它的语法正确;却无法保证它的语义、所要完成的功能也一定正确,没有任何人可以轻易承诺这段代码的行为一定是正确的。编写单元测试就是用来验证这段代码的行为是否与我们期望的一致。有了单元测试,我们可以自信的交付自己的代码,从而减少后顾之忧。
单元测试越早越好,早到什么程度?XP开发理论讲究TDD,即测试驱动开发,先编写测试代码,再进行开发。在实际的工作中,可以不必过分强调先什么后什么,重要的是高效和感觉舒适。个人觉得,先编写产品函数的框架,然后编写测试函数,针对产品函数的功能编写测试用例,然后编写产品函数的代码,每写一个功能点都运行测试,随时补充测试用例。所谓先编写产品函数的框架,是指先编写函数空的实现,有返回值的随便返回一个值,编译通过后再编写测试代码,这时,函数名、参数表、返回类型都应该确定下来了,所编写的测试代码以后需修改的可能性比较小。在代码完成后编写单元测试也可
以,只是当代码太多时对其要测试的内容可能会有所遗漏。
单元测试与其他测试不同,单元测试可看作是编码工作的一部分,应该由程序员完成,也就是说,经过了单元测试的代码才是已完成的代码,提交产品代码时也要同时提交测试代码。
单元测试任务包括:
1.
模块接口测试:保存模块接口数据的输入和输出都是正确的。
2.
模块局部数据结构测试:保证临时存储在模块内的数据在程序执行过程中完整、正确,防止出现上溢、下溢、和地址异常。如果有必要