我需要测试几个在文件中定义为静态的函数(除了单元测试外,不在此文件之外的任何地方使用)。
要启用单元测试文件以查看我尝试使用声明了这些函数的.h文件的函数,但这会导致链接错误。 我考虑的一个解决方案是,不使用static关键字,而是使用在工作版本中由static替换的宏,在单元测试版本中为空。
但是我不知道如何使条件依赖于启动项目,而不是一直手动重新定义宏。看到代码打算在TI处理器上运行,我还考虑使用包装函数仅在定义WIN32时编译。
我非常希望听到有关这些想法和更好的想法的反馈。 谢谢!
答案 0 :(得分:4)
在源文件中,您需要
-DUNITTESTS
然后,当您构建单元测试时,将#include "file.c"
传递给
否则请考虑在测试中包含源文件,即
private int CountChances()
{
int totalChance = 0;
foreach(var chance in this.Chances)
{
totalChance += chance.Value;
}
return totalChance;
}