社区
其它技术问题
帖子详情
【急】关于C函数mock的问题
TheLostMan丶
2014-08-08 05:01:04
怎么在不修改源文件,也不用宏定义的情况下,把Googlemock和项目结合起来,或者说有其他的mock framework可以做到不修改源文件也不用宏定义这种条件。
自己写mock函数,然后cmake先链自己mock的函数库的方法暂不考虑。
...全文
283
回复
打赏
收藏
【急】关于C函数mock的问题
怎么在不修改源文件,也不用宏定义的情况下,把Googlemock和项目结合起来,或者说有其他的mock framework可以做到不修改源文件也不用宏定义这种条件。 自己写mock函数,然后cmake先链自己mock的函数库的方法暂不考虑。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
对C语言的
函数
进行
mock
的3种方法
对C语言的
函数
进行
mock
的3种方法 CC++C#OO咨询 为一个咨询项目做准备,学习了几种对C语言
函数
进行
mock
的方法,由于C语言面向过程, 缺乏封装,继承,多态等面向对象语言的特性, 也无法利用面向对象中多态这个特性来实现
mock
,相对来说比java等OO的语言难于测试。 但也不是没有办法,先看例子: 下面的代码中account_update
函数
使用了db_upd
c 语言
mock
,对C语言的
函数
进行
mock
的3种方法
为一个咨询项目做准备,学习了几种对C语言
函数
进行
mock
的方法,由于C语言面向过程, 缺乏封装,继承,多态等面向对象语言的特性, 也无法利用面向对象中多态这个特性来实现
mock
,相对来说比java等OO的语言难于测试。 但也不是没有办法,先看例子:下面的代码中account_update
函数
使用了db_update这个
函数
,它会直接调用数据库,是个重量级的依赖。 为了对这段代码进行测试, 需要把d...
c语言单元测试,如何伪装(
mock
)
函数
调用
本文适合对c语言有一定基础,喜欢单元测试的小伙伴们阅读。 本文代码主要实现了c语言单测时
mock
方法。
Check框架:支持
Mock
的C单元测试工具
首先,在测试代码中定义与真实
函数
签名一致的
函数
指针,以及
Mock
函数
的实现体;// 1. 定义
函数
指针,指向真实
函数
或
Mock
函数
// 2. 全局变量:存储
Mock
函数
的预设返回值和调用记录// reg_read的预设返回值// reg_read的调用地址记录// reg_write的调用地址记录// reg_write的调用值记录// 3.
Mock
函数
实现:模拟reg_read// 记录调用参数// 返回预设值// 4.
Mock
函数
实现:模拟reg_write。
c语言中
mock
由于C语言面向过程, 缺乏封装,继承,多态等面向对象语言的特性, 也无法利用面向对象中多态这个特性来实现
mock
。但还是有其他方法可以利用: 编译前: 1、利用C语言的预处理(在编译之前进行
Mock
),利用C编译器预编译的特点,通过宏定义实现。利用#define:使用宏就会丢失类型安全,如果逻辑复杂的话,很容易出错谨慎使用该方法 编译时: 1、使用
函数
指针(编译期进行
mock
)或 2、修改
函数
内存地址,通过Jump指令跳转到stub
函数
3、GCC编译器的–wrap选项 使用GCC的–wrap选项:对sym
其它技术问题
3,881
社区成员
9,044
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章