视频演示表格驱动的C/C++单元测试基础:针对基本数据类型与结构类型。
表格驱动,是指表格中的数据,具有测试驱动代码的功能,直接驱动测试的执行,不需要编写和维护测试代码。
例如,参数int i,表格中的输入填1,相当于代码:i = 1; 而输出填1,则相当于 assert(i == 1);,如果实际输出i != 1,则自动报告错误。输出填1,实际上省略了判断操作符==,可以使用其他判断操作符,如<1,相当于assert(i < 1);,或&0x1000,相当于assert((i & 0x1000) != 0);。
表格自动申请内存并清空,例如:
typedef struct
{
int a; //其他成员省略
}BASE;
参数BASE* pBase,其成员pBase->a的输入填1,相当于:
pBase = (BASE*)malloc(sizeof(BASE));
memset(pBase, sizeof(BASE));
pBase->a = 1;
如果,pBase->a的输出填1,则相当于:
assert(pBase != NULL);
if(pBase != NULL)
assert(pBase->a == 1);
更多层级的数据,处理过程类似。可见,表格中的数据,具有代码的功能,而不是一般意义上的数据。VU4的表格驱动,不但做到了不用写代码,更关键的是,VU也不需要为表格中的数据生成代码,从而避免了维护大量的测试代码。