C中结构初始化的单元测试
我想为数据结构初始化例程编写一个测试。例如:C中结构初始化的单元测试,c,testing,C,Testing,我想为数据结构初始化例程编写一个测试。例如: struct book_t { float price; int page_num; char title[100]; int hardcover:1; int on_sale:1; int language:3; } void init_book(struct book_t *b) { /* use memset or assign value to each field */ }; 对init_bo
struct book_t
{
float price;
int page_num;
char title[100];
int hardcover:1;
int on_sale:1;
int language:3;
}
void init_book(struct book_t *b)
{
/* use memset or assign value to each field */
};
对init_book()的测试将有助于防止开发人员在修改struct book_t时忘记更新init_book()。逐个检查字段值是没有帮助的,因为不会测试新字段
我正在考虑对这种情况使用某种布尔运算,但它不足以从填充中确定未初始化的字段。有更好的方法吗?单元测试无法检查添加新字段
这应该通过代码审查来完成。 您可以考虑在init函数的末尾添加硬编码的结构大小验证,并在第一次运行中声明谁添加了参数,并且没有更新与结构大小相比硬编码的大小。