其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
单元测试的一种新思路

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

假设我们要测试的目标文件为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同时在一个工程中进行测试的目的了。




相关文章

相关软件