2012-11-21 84 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) 
    ... 
} 
相關問題