如何在发布中排除测试用例(gTest)

时间:2012-11-21 14:27:33

标签: c++ testing release googletest

如果我使用g(oogle)测试,这些像FRIEND_TEST(Test, Proc)这样的小型Google宏会分布在我的代码中。是否存在将其从构建中排除的自动化,或者我是否真的必须用#ifdefs包围它们?

2 个答案:

答案 0 :(得分:1)

您不需要做任何类似的事情。 friend声明完全无害,并且不会在生产代码中产生任何开销。

答案 1 :(得分:0)

你可以在这里提到朋友GTest案例

How to make google-test classes friends with my classes?

如上所述,使用这些宏没有任何开销。

此外,您可以在不使用FRIEND_TEST的情况下测试私有类成员。其中之一是为fixture类中的测试类私有成员编写访问器,然后在测试中使用访问器:

class Foo {
  friend class FooTest;
  ...
};

class FooTest : public ::testing::Test {
 protected:
  ...
  T1 get_private_member1(Foo* obj) {
    return obj->private_member1_;
  }
};

TEST_F(FooTest, Test1) {
  ...
  get_private_member1(x)
  ...
}