【发布时间】:2018-09-28 14:55:23
【问题描述】:
我想通过使用 cmocka 框架实现单元测试来测试一些功能。
例如,我有一个正在测试的非静态函数,它调用两个静态函数。由于这些静态函数与硬件交互的事实,我想模拟/包装它们并在测试时使用包装函数而不是真实函数。
如 cmocka 文档中所述,我在构建/链接测试时使用了 --wrap=myfunction 链接器标志。
测试可以编译,但是当我运行它们时,将调用真正的静态函数而不是包装。
当我将静态函数声明为非静态时,它也不起作用,并且调用了真正的函数。我发现的唯一解决方案是将函数外包到一个额外的 .c 文件中……但这是一个非常糟糕的解决方法,因为它对代码的操作非常多。
【问题讨论】: