GTest - 如何通过 SetUp 方法为多次使用准备数据?
GTest - how to prepare data for multiple usage via SetUp method?
我正在尝试 运行 一些 google 测试,并且我有很多代码要在每个测试夹具中重复,所以我想使代码尽可能简短,并且我想使用 Testing::test 父 class 的子 class 的 SetUp 方法,但是 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
方法内部的局部变量。如果你想在测试夹具中使用它,它需要是一个 class 成员:
class FooTest: public testing::Test
{
protected:
int FooVar;
virtual void SetUp() override
{
this.FooVar = 911;
}
};
在此示例中,如果您只设置整型,则应将它们设为常量成员变量。
我正在尝试 运行 一些 google 测试,并且我有很多代码要在每个测试夹具中重复,所以我想使代码尽可能简短,并且我想使用 Testing::test 父 class 的子 class 的 SetUp 方法,但是 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
方法内部的局部变量。如果你想在测试夹具中使用它,它需要是一个 class 成员:
class FooTest: public testing::Test
{
protected:
int FooVar;
virtual void SetUp() override
{
this.FooVar = 911;
}
};
在此示例中,如果您只设置整型,则应将它们设为常量成员变量。