现在的位置: 首页 > 综合 > 正文

关于测试函数(假代码)的使用

2012年05月11日 ⁄ 综合 ⁄ 共 1463字 ⁄ 字号 评论关闭

关于测试函数的使用

 

 

1 目的:

为了让大家了解测试函数的使用方法,本文详细介绍了测试函数的选择编译(链接)的方法。

 

2 目录结构:

组版服务器组的代码目录结构(初定):

├─Service_001

  ├─code

  ├─testcode

  └─make

└─Service_002

    ├─code

    ├─make

└─testcode

说明:

Ø        以服务为单位创建服务目录(如Service_001,这个命名待以后定)

Ø        每个服务目录下有3个子目录:code testcode make

n        Code:保存程序代码(真代码),如:a.ha.c

n        Testcode:保存测试代码(假代码),如:a_t.c

n        Make:保存Makefile文件和编译/链接后的可执行文件。

Ø        服务目录下有一个FuncMacro.h文件,作用是通过定义宏选择测试函数。这个需要手工修改,并且每次增加函数都要在这个文件里添加宏,里面的宏都是以注释形式出现的,当修改时需要使用哪个只需要去掉注释即可。这个文件代码如下:

 

FuncMacro.h

#ifndef FUNCMACRO_H

#define FUNCMACRO_H

 

// #define ADDSUB_ADD // add 正常(完成)

// #define ADDSUB_SUB // sub 正常(未完成)

// #define ADDSUB_SUB0_T // sub 返回0

// #define ADDSUB_SUB2_T // sub 返回2

 

#endif

 

3 实现思想:

这个实现的核心思想就是通过C语言的#ifdef预处理宏,具体如下:

 

code目录下有a.ha.c描述加减法的代码,但减法代码还没有完成,代码如下:

 

a.h

// Service: AddSub

#ifndef AAAAA_H

#define AAAAA_H

 

int add(int a, int b);

int sub(int a, int b);

 

#endif

 

a.c

#include “FuncMacro.h” // 选择测试函数的宏定义头文件

 

#ifdef ADDSUB_ADD

int add(int a, int b)

{

return (a + b);

}

#endif

 

#ifdef ADDSUB_SUB

int sub(int a, int b)

{

// TODO

}

#endif

 

 

testcode目录下有a_t.c的测试代码(假代码),为了实现没有完成的sub功能,我们让它返回0,同时另一个返回2

 

a_t.c

#include “FuncMacro.h” // 选择测试函数的宏定义头文件

 

#ifdef ADDSUB_SUB0_T

int sub(int a, int b)

{

return 0;

}

#endif

 

#ifdef ADDSUB_SUB2_T

int sub(int a, int b)

{

return 2;

}

#endif

 

 

好了,下面我们开始选择需要的测试函数,比如我们选a.c里的adda_t.c里面的返回0那个sub函数。

我们的FuncMacro.h文件可以这样改:

 

#ifndef FUNCMACRO_H

#define FUNCMACRO_H

 

#define ADDSUB_ADD // add 正常(完成)

// #define ADDSUB_SUB // sub 正常(未完成)

#define ADDSUB_SUB0_T // sub 返回0

// #define ADDSUB_SUB2_T // sub 返回2

 

#endif

 

4 扩展:

可以通过在a_t.c中增加同一个函数的不同版本实现多个测试用例效果。

 

【上篇】
【下篇】

抱歉!评论已关闭.