|
先说下概念:
单元本身不是一个独立的程序,一个完整的可运行的软件系统并没有构成,所以必须为每个单元测试开发驱动单元和桩单元.
驱动单元(Driver):所测函数的主程序,他接受测试数据,并把数据传送给所测试单元,最后再输出实测结果.当被测试单元能完成相关功能时,也可以不要驱动单元.
桩单元(Stub):用来代替所测单元的子单元.
以下是我个人的理解:
驱动单元:当测试一个孤立的单元时,其本身是不能运行的,因此,就要用驱动将数据传给被测单元,然后再把被测单元运算所输出的数据传给驱动单元,比较实际输出和预期输出是否一致.
例子:测试一个加法函数
void driber()
{
int sum=0;
sum=add(1,1);
if(2==sum)
printf("test case CAL_ST_SRS001_001 OK!\n");
else
printf("test case CAL_ST_SRS001_001 fail!\n);
}
桩单元:测试一个被测单元是,,该单元要调用一个函数,而在被调用函数不是100%正确时,我们可以从测试的角度模拟被调用的单元.(是在测试角度)
例子:模拟加法函数的桩
int stub_add(int a,int b)
{
if((a==1)&&(b==1))
return 2;
if((a==2)&&(b==-1))
return 1;
if((a==3)&&(b==0))
return 3;
if((a==4)&&(b==1))
return 5;
.............
}
昨天刚刚学,,现学现用!^&^~~~ |
|