2013-03-15 29 views
3

我是單元測試C++代碼,並且我正在龐大的數據集上運行復雜的算法。我想在第一個簡單的不切實際的數據集上運行測試,並測試運行在類似於現實的數據集上。所以,我想我的燈具看起來像這樣:GoogleTest - 在一個夾具中有幾個setUp()

class AppsToBeTested : public ::testing::Test 
{ 
public: 
    AppsToBeTested():member(NULL) 
    { 

    } 

    setUp1() 
    { 

    } 

    setUp2() 
    { 

    } 

    tearDown() 
    { 

    } 
protected: 
    helperCreateDataset1() ; 
    helperCreateDataset2() ; 

}; 

setUp2()setUp2()調用兩個不同的輔助方法,helperCreateDataset1()helperCreateDataset2() RESP。在這個版本的代碼中,我並不覆蓋setUp()方法,而只是使用兩個幫助程序setUp1()setUp2(),我必須在測試用例中明確地調用它。

什麼是兩個setUp()初始化的適當方法?遺產?模板?

回答

3

gtest文檔here對此響應的提示:一個夾具適用於多個測試案例的一個測試環境。所有共享相同夾具的測試案例都有相同的setUp()。如果需要幾個設置(例如測試一個類的測試用例的兩種設置),則應該使用幾個固定裝置(例如兩個固定裝置,以及測試用例引用第一個固定裝置或第二個固定裝置)。

總之,我覺得ONE FIXTURE == ONE SETUP,並使用盡可能多的燈具來測試您的代碼的一個類/一個部分作爲您需要的不同設置。

這個答案公平嗎?

您的意見是?

相關問題