MOH*_*MED 9 c c++ unit-testing cppunit
我的项目包含C文件.在某些文件中,我将函数定义为static.
我在单元测试中使用CppUnit,我想测试这些静态函数.我知道不允许从文件外部(它定义的地方)调用函数.有没有解决方案来避免这个问题,以便从我的C++测试文件中调用这些静态函数?
假设我们正在谈论C静态函数,那么最简单的解决方案是在编译调试版本时使函数非静态.这意味着符号可供您在单元测试中使用.这仅在没有符号别名的情况下有效.
如果DEBUG在所有调试版本上定义符号,则类似于:
#ifdef DEBUG
#define debug_export
#else
#define debug_export static
#endif
Run Code Online (Sandbox Code Playgroud)
然后定义这样的静态函数
debug_export void foo(void)
{
...
}
Run Code Online (Sandbox Code Playgroud)
并在头文件中有条件地包含声明或在单元测试文件中手动导入它们:
extern void foo(void);
Run Code Online (Sandbox Code Playgroud)
围绕它的其他方法是在源文件本身中包含单元测试(如果它失控,有点混乱),不打扰单元测试功能(一点副作用)或标记功能作为dll-local而不是static,并确保您的单元测试是该动态对象的一部分.
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |