如何在发布中排除测试用例(gTest)
Posted
技术标签:
【中文标题】如何在发布中排除测试用例(gTest)【英文标题】:How to exclude test cases in release (gTest) 【发布时间】:2012-11-21 14:27:32 【问题描述】:如果我使用 g(oogle)Test,这些像 FRIEND_TEST(Test, Proc)
这样的小 google 宏在我的代码中随处可见。是否会自动将它们排除在构建之外,还是我真的必须用#ifdefs
包围它们?
【问题讨论】:
我猜一个好的库会内置这些#ifdef
s,并且从这个意义上说,谷歌的任何东西都足够好:-)
【参考方案1】:
你不需要做任何事情。 friend
声明完全无害,不会在生产代码中产生任何开销。
【讨论】:
【参考方案2】:你可以有朋友的 GTest 案例,就像这里提到的那样
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)
...
【讨论】:
以上是关于如何在发布中排除测试用例(gTest)的主要内容,如果未能解决你的问题,请参考以下文章