单元测试的一种新思路

王朝网络·other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

假设我们要测试的目标文件为source.c,其中有以下几个函数

void A()

{

B();

return;

}

void B()

{

C();

return;

}

void C()

{

return;

}

按照所有调用函数全部打桩的方法测试的时候会遇到一个问题,测试A()时把B()打桩,需要把B()注释掉,

否则就没有办法进行控制,测B()的时候需要把B()的桩函数注释掉,这样就会造成在一个测试工程里面无

法同时运行A()和B()的测试例,测试无法回归。

我们想了一个变通的方法。

既然注释代码比较麻烦,无法操作,我们可以使用宏来达到目的,具体实现方法是这样的

#ifdef UT

#define A A

#define B B_X

#endif

void A()

{

B();

return;

}

#ifdef UT

#define B_X B

#endif

#ifdef UT

#define B B

#define C C_X

#endif

void B()

{

C();

return;

}

#ifdef UT

#define C_X C

#endif

void C()

{

return;

}

然后在另外一个文件,例如stub.c中为B和C打桩:B_X, C_X,在source中包含桩的声明文件stub.h,就可以

实现A,B同时在一个工程中进行测试的目的了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有