在将单元测试应用于某些C代码时,我们遇到一个问题,即在不修改源代码的情况下,无法在测试文件中调用某些静态函数。有没有简单或合理的方法来解决此问题?
3 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
我有一个测试装置。在严重的情况下-像尝试测试静态函数一样,我使用:
#include "code_under_test.c"
...test framework...
也就是说,我将包含测试功能的整个文件包含在测试工具中。这是万不得已的方法-但行得通。
不负相思意
TA贡献1777条经验 获得超10个赞
您能否提供有关为什么无法调用该函数的更多信息?
由于它是.c文件专用的,因此不可用吗?如果是这样,最好的选择是使用条件编译,该条件编译允许访问该函数,以便允许其他编译单元访问它。例如
SomeHeaderSomewher.h
#if UNIT_TEST
#define unit_static
#else
#define unit_static static
#endif
oo
#if UNIT_TEST
void some_method
#endif
Foo.cpp
unit_static void some_method() ...
- 3 回答
- 0 关注
- 664 浏览
添加回答
举报
0/150
提交
取消