我有一个配置有函数的全局变量。我正在编写一个 gtest 来测试函数是否正常工作,方法是检查调用函数后全局变量是否发生变化。
在main.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
存在于某处,并将在链接时解析它。
The name can be referred to from the scopes in the other translation units.
*.cpp 文件是“翻译单元”。
关于c++ - 在测试中测试 C++ 全局变量的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52048690/