如何對static函數做單元測試?
如何對static函數做單元測試?
在源代碼裏嵌入測試代碼就顯得混亂。而在測試代碼裏include入static函數所在的源文件,又存在有一些問題,如該源文件不能包含main,命名空間不能有交集,等等。而在源文件插入這樣的代碼:
#ifdef UNIT_TEST
#define _static
#else
#define _static static
這樣同樣修改了源文件,雖然是小修。而且在同一個單元測試源文件裏測試數個在不同源文件的static函數裏,還有命名衝突的風險。
有的人說,對調用static函數的外部函數作充分測試,以間接測試static函數。我想,那跟直接測試main,以間接測試所有其他函數有什麼區別?
究竟怎麼辦好呢?