【问题标题】:Running unit tests on static functions [duplicate]对静态函数运行单元测试[重复]
【发布时间】:2015-10-29 08:07:39
【问题描述】:

我需要测试几个在文件中定义为静态的函数(除了在单元测试中之外,不使用此文件之外的任何地方)。

为了使单元测试文件能够查看我尝试使用声明这些函数的 .h 文件的函数,但这会导致链接错误。 我考虑的一个解决方案是,不使用 static 关键字,而是使用在工作版本中被 static 替换的宏,而在单元测试版本中为空。

但是我不知道如何使条件依赖于启动项目,而不是一直手动重新定义宏。鉴于代码旨在在 TI 处理器上运行,我还考虑使用仅在定义WIN32时编译。

我非常希望听到有关这些想法和更好想法的反馈。 谢谢!

【问题讨论】:

  • 请贴出你得到的链接错误,可能会帮助别人帮助你。
  • 只使用非静态函数?摆弄宏等是不值得的

标签: c unit-testing visual-studio-2012


【解决方案1】:

在你需要的源文件中

#ifndef UNITTESTS
    #define STATIC
#else
    #define STATIC static
#endif

然后当你构建你的单元测试 pass-DUNITTESTS 来制作

否则考虑在测试中包含您的源文件,即

#include "file.c"

【讨论】:

  • 我不喜欢宏解决方案,因为它需要修改您的代码。通过定义一个额外的宏和测试与真实代码(略有)不同的代码。想想 static 关键字解释上可能存在的编译器错误
猜你喜欢
  • 2021-11-06
  • 2010-09-24
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
  • 2013-05-22
相关资源
最近更新 更多