在 gtests 中测试C++全局变量的最佳方法
Best way to test C++ global variables in gtests
我有一个配置了函数的全局变量。我正在编写一个 gtest 来测试函数是否正常工作,方法是检查调用函数后全局变量是否更改。
主要.cpp:
bool flag{false};
void FlipFlag() {
flag = true;
}
在main.h中:
void FlipFlag();
在main_TEST.cpp:
#include "gtest/gtest.h"
#include "main.h"
TEST(MainTest, TestFlagFlip) {
EXPECT_FALSE(flag);
FlagFlip();
EXPECT_TRUE(flag);
}
如何访问变量flag
进行测试?我不想在main.h
中宣布flag
.这是测试标志的最佳方法吗?
将其添加到main.h
:
extern bool flag;
这会告诉链接器flag
存在于某处,并将在链接时解析它。
可以从其他翻译单元中的范围引用该名称。
*.cpp文件是"翻译单元"。
以下是一些关于 extern 的文档。
从单元测试 C 中的答案中获取一个叶子 函数不在 header 中,一种方法是在仅由 gtest 使用的私有头文件中使用extern
。因此,除了上面问题中声明的文件之外,还将有一个额外的头文件,main_pi.h
声明extern bool flag
.
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 检测win32服务创建和删除的最佳方法
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 将线程中的数据存储到全局容器的最佳方法?
- 将一系列整数放入类的最佳方法是什么?
- 在派生类中使用基类的私有成员变量的最佳方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 比较两个节点坐标的最佳方法是什么?
- 在nodejs中使用本机代码的最佳方法是什么?
- 将 pybind11 绑定标记为已弃用的最佳方法
- C++:将向量传递到构造函数以创建成员变量的最佳方法?
- C++中变量混叠的最佳方法
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?