vlambda博客
学习文章列表

功能测试框架(C语言)

功能测试框架,用户只需要在ItemList列表中新增需要待测试功能的接口和补充对应的ID号,然后编译测试

/**文件名:main.h*/#ifndef __MAIN_H__#define __MAIN_H__
typedef int (*func)(void);
typedef struct { /*函数功能测试项ID号*/ unsigned int item_id; /*函数指针,指向需要待测试功能函数*/ int (*func)(void);}ITEM_LIST;
#endif
/** 文件名:main.c* Describes:功能测试框架,用户只需要在ItemList列表中新增需要待测试功能的接口和补充对应的ID号* Author:Robert* Time:2020-03-02*/
#include <stdio.h>#include <stdlib.h>#include <main.h>/*功能函数1*/int FUNC_1(void){ printf("This is func_1\n"); return 0;}/*功能函数2*/int FUNC_2(void){ printf("This is func_2\n");; return 0;}/*功能函数3*/int FUNC_3(void){ printf("This is func_3\n"); return 0;}
/*用户新增 项目ID和需要测试的项目函数名*/ITEM_LIST ItemList[]={ {1, FUNC_1}, {2, FUNC_2}, {3, FUNC_3},};
/*执行测试的程序*/void Run_User_Test_App(int item){ ItemList[item-1].func();}
/*用户根据需要测试的功能输入对应的测试项ID*/int Get_User_Input(void){ int item = 0; scanf("%d", &item); return item ;}
int main(int argc, char *argv[]){ int item = 0 ; int item_max = 0 ; item_max = sizeof(ItemList)/sizeof(ITEM_LIST); printf("item_max=%d\n", item_max); while(1) { printf("please input id of item<1,%d>:\n", item_max); item = Get_User_Input(); if( (item<1) || (item>item_max) ) { printf("Id of item error\n"); continue ; }
Run_User_Test_App(item); } return 0 ;}