如何测试静态功能

在将单元测试应用于某些C代码时,我们遇到一个问题,即在不修改源代码的情况下,无法在测试文件中调用某些静态函数。有没有简单或合理的方法来解决此问题?



智慧大石
浏览 629回答 3
3回答

收到一只叮咚

我有一个测试装置。在严重的情况下-像尝试测试静态函数一样,我使用:#include "code_under_test.c"...test framework...也就是说,我将包含测试功能的整个文件包含在测试工具中。这是万不得已的方法-但行得通。

不负相思意

您能否提供有关为什么无法调用该函数的更多信息?由于它是.c文件专用的,因此不可用吗?如果是这样,最好的选择是使用条件编译,该条件编译允许访问该函数,以便允许其他编译单元访问它。例如SomeHeaderSomewher.h#if UNIT_TEST#define unit_static #else#define unit_static static#endifoo#if UNIT_TESTvoid some_method#endifFoo.cppunit_static void some_method() ...
打开App,查看更多内容
随时随地看视频慕课网APP