单元测试之打桩-stub
·
首先,了解两个单元测试和集成测试的基本概念:
驱动程序/驱动模块(driver),用以模拟被测模块的上级模块。驱动模块在集成测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块。
桩程序/桩模块(stub),也有人称为存根程序,用以模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口。
驱动模块、桩模块和被测对象的关系如下:

打桩分类:
编译时打桩
通常,通过宏定义对目标函数的调用替换为wrapper函数的调用,wrapper函数由自己定义
链接时打桩
通过Linux静态链接器–wrap标志进行链接时打桩
运行时打桩
基于动态链接器的预加载机制,设置LD_PRELOAD环境变量改变库文件搜索路径
编译时打桩需要访问程序的源代码,连接时打桩需要能够访问程序的可重定位的对象文件。不过运行时打桩仅需要访问可执行目标文件即可。
编程参考链接:
https://blog.csdn.net/weixin_34307464/article/details/86251282
https://blog.csdn.net/vc8/article/details/90760081
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)