版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/6156515
单元测试的主要任务是验证详细规格说明书规定的软件单元是否被开发人员以代码的形式正确实现了。这里的软件单元在面向过程的程序设计中指的是某个函数,在面向对象的程序设计中指的是类或类的成员方法。该测试要把每个函数的每个分支都100%覆盖到,并且每个函数的功能都100%覆盖。
单元测试一般是白盒测试,一般分为手工单元测试和自动化单元测试两种。手工单元测试的基本原理是构建桩模块和测试驰动模块驱动被测单元的执行,然后侧试人员输入设计好的测试用例,测试被测单元能否按照要求处理测试用例。对于出现异常情况的测试用例,测试人员应该记录下来并反馈给开发人员。自动化单元测试的目的是弥补手工单元测试的不足,让一部分或者全部的单元测试工作由计算机来自动完成,从而全面提高单元测试的效率。
为了实现单元测试的自动化,一般采用软件框架(Framework)的软件复用技术。框架是为最大化的重用而设计的体系结构,框架的一个重要机制是用户定义的方法一般是被框架调用,而不是用户的方法调用框架,这种机制称为“反向控制”。当外部事件发生时,框架的调度器通知事件处理对象,调用其中的用户代码,响应事件。反向控制的实质是允许框架,而不是应用程序决定何种方法被激活来响应外部事件。设计模式是框架成功开发的关键。成熟的框架通常使用了多种设计模式,从而具备良好的灵活性和可扩展性。
类似Java中的JUnit以及C++中的CPPUnit,开发商可以根据自己的需要构造自己的单元测试框架。