【发布时间】:2021-02-22 05:41:01
【问题描述】:
我正在尝试运行一些 google 测试,并且在每个测试夹具中我有很多代码要重复,所以我想让代码尽可能简短,我想使用 SetUp 方法Testing::test 父类的子类,但 TEST_F 夹具无法识别来自 SetUp 的变量
这是我能想到的最简单的例子:
class FooTest: public testing::Test
{
protected:
virtual void SetUp() // using void SetUp() override does not help
{
int FooVar = 911;
}
virtual void TearDown()
{
}
};
TEST_F(FooTest, SampleTest)
{
// FooTest::SetUp(); // This does not help as well
EXPECT_EQ(911, FooVar);
}
当我尝试编译此代码时,它显示 FooVar 未在此范围内声明的错误。我该如何解决? 非常感谢您的帮助。
【问题讨论】:
-
您需要将
FooVar声明为该类的成员。目前是SetUp方法内部的局部变量。 -
您在
int FooVar = 911;中声明FooVar。编译器怎么可能显示该错误? -
@M.A 谢谢,我没有意识到这一点。您能否添加一个答案以便我接受?
标签: c++ unit-testing googletest