gtest setup teardown TestEnvironment - 类变量的问题

时间:2016-10-17 17:20:16

标签: c++ static googletest teardown

我还有另外一个gtest,我做了以下操作并且工作正常:

TEST(TEST1, TestName)
{
ClassName env;
const String original = env(Con::WorkingDir);

Con c = env;
}

但是,我希望将其设置为另一个gtest类并保持整个测试夹具。但是,我收到此错误消息:

  

调用类类型的对象而没有适当的运算符或   转换函数到指针到函数类型。

我在看initialize gtest,我不确定我为此缺少了什么。它可以使用我不熟悉的静态变量。不过,我不希望ClassName是静态的。

我做错了什么?

//this is intended to setup env to use in teardown.
class TestEnvironment : public ::testing::Environment {
public:
 static String getEn() {
   ClassName env;
   static const String sString = env(Con::WorkingDir);  //env has the error message here
   return sString;
 }
}

class UnitTest : public ::testing::Test
{
public:
virtual void SetUp() {
   //
}

virtual void TearDown() {
  //set env back to initial value
  getEn();
  //process env info;
}

1 个答案:

答案 0 :(得分:0)

class UnitTest : public ::testing::Test {  //can't use Environment here because of name conflict in our code, although that was used by static const variable setup in example link.
public:
 String orig;
}

class UnitTest : public ::testing::Test
{
public:
virtual void SetUp() {
   orig = code;
}

virtual void TearDown() {
  //process orig;
}

事实证明,即使我们的代码正在寻找一个const字符串,我们也不必将其保存为const。