对共享库的私有函数进行单元测试

bik*_*990 3 c++ linux gcc unit-testing

我在考虑是否有任何框架/库提供了一种机制来测试共享库未导出的函数.

我想测试共享库的"t"部分中列出的函数的工作.为了测试"T"部分中的功能,我使用了cppunit.

测试场景:使用" __ attribute __((visibility("default"))) " 导出一个类,它声明另一个类的变量,该变量具有" __ attribute __((visibility("hidden"))) ""在同一个库中定义.我想用" __ attribute __((visibility("hidden"))) "属性测试该类.

库的编程语言是c ++

编译器gcc 4.1.2

平台RedHat/Solaris

Bar*_*nau 5

由于单元测试应该对他们测试的代码有深入的了解,因此单元测试也可以使用一段代码的普通用户无法使用的技巧.

这里采用的可能技巧是:

  • 确保单元测试和被测代码链接为单个可执行文件,而不首先在库中构建测试代码.
  • 在构建单元测试时,使用预处理器宏来禁用可见性属性.

  • @ bikram990:单元测试无法/不会检测到许多问题.因此,添加另一级别的测试,通过仅运行其公共接口来验证库的正确运行.这就是我对黑盒发布测试的期望. (3认同)