在將單元測試應用于某些C代碼時,我們遇到一個問題,即在不修改源代碼的情況下,無法在測試文件中調用某些靜態函數。有沒有簡單或合理的方法來解決此問題?
3 回答

收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
我有一個測試裝置。在嚴重的情況下-像嘗試測試靜態函數一樣,我使用:
#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 關注
- 719 瀏覽
添加回答
舉報
0/150
提交
取消