2、 单元测试实践的主要问题程序员
单元测试有个特色:测试简单独立的代码很容易,但要在实际工做中作好单元测试却很困难。框架
根据咱们的经验,企业在实施单元测试时,一般会面对四大问题——ide
3、 解决思路和方法函数
如何解决上述问题呢?接下来,谈谈一些思路和方法,使用的工具是Visual Unit。Visual Unit,简称VU,是可视化的C/C++单元测试工具。
3.1 如何解决“不肯作”和“没时间”工具
对于“不肯作”,咱们采用的对策是可视化,这个可视化,是指程序行为可视,后面我会用案例来演示;对于“没时间”,采用的对策是自动化,经过自动生成测试代码、自动打桩等功能,让测试的时间成本最小化。这二者结合起来,就是ETDD开发模式。单元测试
那么,ETDD是什么呢?测试
首先来介绍一下TDD,TDD就是测试驱动开发,这个你们可能听得比较多了。ETDD就是Easy TDD,即:易行版的TDD。ETDD具备如下一些特色:编码
下面,我用一个案例,讲解一下ETDD的过程:开发
假如我要编写一个函数,它的功能是删除字符串左边的空格。字符串
先写好函数的框架,能经过编译就行。在编写代码前,程序员必需要作的一件事情,是想清楚代码的功能。若是咱们想的时候,顺手把它记录下来,就可让代码的功能更清晰、更明确。
咱们如今来记录代码的功能。这里的记录,不是文字形式的宠统说明,而是数据形式的精肯定义,也就是用输入和输出的方式来记录。
首先,记录最基本的功能,也就是最基本、最多见的输入和输出。输入一个左边有空格的字符串,输出是删除左边空格后的字符串,返回值跟参数的输出是同样的。
而后,记录详细的功能。例如,左边没有空格的,全是空格的,还有空字符串。
把每种输入的正确输出也记录一下。完成了这个工做后,代码的功能就彻底定义下来了。
如今,咱们开始编写代码。个人编码思路是这样的:分为两步,第一步计算左边的空格数量;第二步,将非空格的字符向左移动,覆盖掉左边的空格。
如下几行代码,计算左边的空格,如今编译一下。CTRL+F7。若是编译经过,测试就会自动运行。
咱们能够看到,输入是什么,执行了哪些代码,产生了什么输出。这里,黑色的是当前输入下所执行的代码,未执行的话会显示为红色。这里全是黑色,表示当前输入下执行了所有代码。若是咱们想看一下计算左边空格的结果对不对,这是内部的数据,要指定位置后才会打印出来。按ESC键回到开发环境。
用这种语法能够输出内部数据,适合于程序员开发过程当中使用。复杂类型也能够用一样的语法输出。
另外一种输出内部数据的语法是,在左边的代码窗口,在要输出的位置点击一下,右键菜单选择“输出内部数据”,这样填一下就好了。这种方式不会修改产品代码,适合于测试员使用。
再次执行后,能够看到,左边的空格的数量是4,这是对的,那咱们能够继续编写。
(待续)