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 未在此范围内声明。我该如何解决? 非常感谢您的帮助。

FooVarSetUp 方法内部的局部变量。如果你想在测试夹具中使用它,它需要是一个 class 成员:

class FooTest: public testing::Test
{
      protected:

      int FooVar;
      virtual void SetUp() override
      {
        this.FooVar = 911;
      }
};

在此示例中,如果您只设置整型,则应将它们设为常量成员变量。