c++ - 如何在匿名命名空间中使用带有免费功能的谷歌测试?

标签 c++ function c++11 namespaces googletest

我有一个类可以做很多事情。为了将工作拆分为逻辑单元,我在匿名命名空间中创建了一些自由函数,因为它们仅在此类中使用。

我目前正在使用 gtest 对我的类(class)进行单元测试。如何为匿名命名空间自由函数实现单元测试?

最佳答案

首先,您不应该在 header 的匿名命名空间中包含函数。

这意味着,您想在源文件的匿名命名空间中对您的函数进行单元测试。

最简单的答案是:你不能也不要这些函数,因为它们只对定义它们的源文件(翻译单元)可用。

但是,您可以调用方法和函数,调用这些函数并测试它们的输出。

另一种选择是将它们移出匿名命名空间,并在 header 中声明。然后你可以使用某种独特的命名空间。例如:

// header

int someFunc();

namespace hidden {
float myFunc1(int);
}

关于c++ - 如何在匿名命名空间中使用带有免费功能的谷歌测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24609672/

相关文章:

c++ - SFINAE:它如何与派生类一起工作?

c++ - 将 char 数组转换为字符串时的数据丢失

php - 函数查询不会执行

无法将 char 值分配给结构中的指针

C++ 模板 - 仅当模板参数中存在特定值时才添加函数

c++ - 在运行时可以检测到 C++03 和 C++11 之间的哪些差异(如果有)?

c++ - 矩阵 A 的 boolean 积

c++ - 语法错误: missing ';' before '*' for all pointers?

python - 为什么这个函数的 __dict__ 属性是一个空字典?

c++ - std::list 删除中的意外结果 (C++)