我正在運行谷歌測試。谷歌測試 - 上課前
我需要像上課之類的東西。我有SetUp()和TearDown()函數,但它們在之前和之後運行,每個測試。現在我需要一些全局的東西 - 比如ctor,它應該在類加載時只運行一次。
感謝提前。
我正在運行谷歌測試。谷歌測試 - 上課前
我需要像上課之類的東西。我有SetUp()和TearDown()函數,但它們在之前和之後運行,每個測試。現在我需要一些全局的東西 - 比如ctor,它應該在類加載時只運行一次。
感謝提前。
您可以定義靜態成員函數在每個燈具類void SetUpTestCase()
和void TearDownTestCase()
,即從::testing::Test
派生每個類。
對於每個燈具,在燈具中的所有測試運行之前和之後,該代碼只能運行一次。
檢查docs。
Perez - 如何爲所有測試(在所有測試案例中)做到這一點?我的意思是,我希望在每次測試之前,同樣的SetUp方法將運行,以及在每次測試之後,同樣的TearDown方法將運行,而無需添加/編輯任何現有類? –
@GuyAvraham:AFAIK框架中沒有這樣的鉤子函數可以讓你做到這一點。你可能需要自己構建它,也許可以爲':: testing :: Test'定義一個子類,然後讓它從你的測試類派生出來。 –
謝謝,我試過了 - 它的工作原理。 –
繼承類::testing::Environment
並覆蓋方法SetUp
和TearDown
,這些方法將包含用於全局設置和拆除的代碼。然後,在執行測試的可執行文件的主要功能中,請在致電RUN_ALL_TESTS()
之前調用函數::testing::AddGlobalTestEnvironment()
。欲瞭解更多信息,請查看文檔:
請詳細說明這個「班級加載的一次」。你指的是什麼課,「加載」課是什麼意思? –
我的意思是在所有**測試開始之前運行的東西。沒有爲每個測試用例設置。 – Rat