有没有对测试比较了解的?
需要测试一大堆函数的功能逻辑是否正确。#include "stdio.h"
#define SUCCESS 0
#define FAILE 1
int g_Func_A_result; //控制Func_A的返回值的全局变量
#define Func_A Stub_A // 对函数Func_A做宏替换
int Stub_A(void) //Func_A的桩函数
{
if(SUCCESS == g_Func_A_result)
return SUCCESS;
else
return FAILE;
}
void Driver1(void);
void Driver2(void);
void Source(void);
int main()
{
Driver1(); //不同的驱动函数
Driver2();
return 0;
}
void Driver2(void)
{
g_Func_A_result = SUCCESS; //给定入口条件
Source();
}
void Driver1(void)
{
g_Func_A_result = FAILE;
Source();
}
void Source(void)
{
Func_A();
Func_B();
}
void Func_B(void)
{
Func_A();
}
#define SUCCESS 0
#define FAILE 1
int g_Func_A_result; //控制Func_A的返回值的全局变量
#define Func_A Stub_A // 对函数Func_A做宏替换
int Stub_A(void) //Func_A的桩函数
{
if(SUCCESS == g_Func_A_result)
return SUCCESS;
else
return FAILE;
}
void Driver1(void);
void Driver2(void);
void Source(void);
int main()
{
Driver1(); //不同的驱动函数
Driver2();
return 0;
}
void Driver2(void)
{
g_Func_A_result = SUCCESS; //给定入口条件
Source();
}
void Driver1(void)
{
g_Func_A_result = FAILE;
Source();
}
void Source(void)
{
Func_A();
Func_B();
}
void Func_B(void)
{
Func_A();
}
Source是被测代码,它内部调用了几个函数,现在不关心调用函数实现是否正确,
只是检查Source本身逻辑是否正确。所以用Stub_A替换Func_A()的功能,用全局
变量来控制返回值。然后在driver()中检查不同情况下Source的返回值是否正确。
问题是:比如我想调用Func_A返回成功,调用Func_B返回失败,Stub和driver该怎么写?
(注:不能用调用次数来控制,因为代码很多,调用关系也复杂,不可能逐个去看
每个函数是第几次被调用)
// 写的比较乱,不知是否描述清楚了。