c 语言 mock,对C语言的函数进行mock的3种方法

为一个咨询项目做准备,学习了几种对C语言函数进行mock的方法,由于C语言面向过程, 缺乏封装,继承,多态等面向对象语言的特性, 也无法利用面向对象中多态这个特性来实现mock,相对来说比java等OO的语言难于测试。 但也不是没有办法,先看例子:

下面的代码中account_update函数使用了db_update这个函数,它会直接调用数据库,是个重量级的依赖。 为了对这段代码进行测试, 需要把db_update函数隔离,怎么处理?

#include

#include

extern int db_update(int, struct DFHLItem *);

void account_update(

int account_no, struct DHLSRecord *record, int activated)

{

if (activated) {

if (record->dateStamped && record->quantity > MAX_ITEMS) {

db_update(account_no, record->item);

} else {

db_update(account_no, record->backup_item);

}

}

db_update(MASTER_ACCOUNT, record->item);

}

方法一:利用C语言的预处理(在编译之前进行Mock)

先引入一个头文件:

#includ

你可能感兴趣的:(c,语言,mock)