2012-11-21 108 views
0

如果我使用g(oogle)测试,像FRIEND_TEST(Test, Proc)这样的小型谷歌宏分布在我的代码中的任何地方。是否有自动化排除他们的构建,还是我真的必须围绕那些与#ifdefs如何排除发布版本中的测试用例(gTest)

+0

我猜想一个好的库会包含这些'#ifdef's而且在这个意义上,谷歌的任何东西都足够好:-) –

回答

1

你不需要做任何事情。 friend声明是完全无害的,不会在生产代码中产生任何开销。

0

你可以有朋友GTEST情况下,如在这里mentionned

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

至于说,没有开销,使用这些宏。

另外,您可以在不使用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) 
    ... 
} 
相关问题