如果我使用 g(oogle)Test,这些 litte google 宏就像FRIEND_TEST(Test, Proc)
分布在我的代码中的任何地方。是否会自动将它们排除在构建之外,还是我真的必须用 包围它们#ifdefs
?
问问题
583 次
2 回答
1
你不需要做任何这样的事情。friend
声明是完全无害的,不会在生产代码中产生任何开销。
于 2012-11-21T14:46:10.800 回答
0
您可以拥有朋友 GTest 案例,如此处所述
如前所述,使用这些宏没有开销。
此外,您可以在不使用FRIEND_TEST
. 其中之一是在夹具类中为测试类的私有成员编写访问器,然后在测试中使用访问器:
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)
...
}
于 2013-04-28T15:35:00.873 回答