我最近使用Google Test for C++代碼。當我閱讀如何設置測試夾具時,我感到有點困惑。 Writing the main() Function會議展示了一個關於測試夾具類看起來像什麼的例子。但是,當涉及到構造函數定義時,我們應該把它放在測試夾具類中嗎?例如,就像谷歌測試文檔給出下面的代碼片段:C++ Google Test測試夾具的構造器定義
class FooTest : public ::testing::Test {
protected:
// You can remove any or all of the following functions if its body
// is empty.
FooTest() {
// You can do set-up work for each test here.
}
virtual ~FooTest() {
// You can do clean-up work that doesn't throw exceptions here.
}
}
我也看了在宏觀TEST_F(test_fixture_name, test_name)
的定義,它似乎是與同一測試夾具相關聯的每個測試,宏將創建一個測試夾具類的新子類。
鑑於上述事實,
如果構造的工作是沉重的,這是否意味着測試夾具的構造將讓編譯器擴展構造的大塊的代碼隨處可見的隱含
inline
? (或者在同一個翻譯單元中這沒有關係?)在這種情況下,在測試夾具類之外定義構造函數是否更有意義?但是這樣會使測試代碼不易讀,我不知道該怎麼辦。
有沒有人可以給我一些建議呢?謝謝!