2012-02-28 40 views
0

複数のテストファイルに含める必要がある.hppファイルで一連の一般的なユニットテストがあります。Googleテストでのテストフィクスチャの複数定義

しかし、同じファイルの複数のコピーを取得し、汎用の.hppファイルはテストフィクスチャの複数の定義について不平を言います。

これにアプローチする方法についてのヘルプが必要です。

答えて

1

gtestクラスの宣言は、通常の方法で.hppと.cppファイルを使用して定義から分離できます。

したがって、テスト関数とフィクスチャをヘッダに定義するのではなく、これらをヘッダファイル#includeのソースファイルに移動します。したがって、たとえば

#include "gtest/gtest.h" 

class MyTest : public ::testing::Test { 
protected: 
    void TestFunction(int i) { 
    ASSERT_GT(10, i); 
    } 
}; 

TEST_F(MyTest, first_test) { 
    ASSERT_NE(1, 2); 
    TestFunction(9); 
} 

変化にtest.hpp

#include "gtest/gtest.h" 

class MyTest : public ::testing::Test { 
protected: 
    void TestFunction(int i); 
}; 

test.cppを追加:あなたはtest.hppのように持っている

#include "test.hpp" 

void MyTest::TestFunction(int i) { 
    ASSERT_GT(10, i); 
} 

TEST_F(MyTest, first_test) { 
    ASSERT_NE(1, 2); 
    TestFunction(9); 
} 

あなたが複数の場所で同じテストヘッダを含めている場合、あなたは本当に探しています型付きテストまたは型パラメータ化テストの場合詳細については、http://code.google.com/p/googletest/wiki/V1_6_AdvancedGuide#Typed_Testsを参照してください。

+0

ありがとう、フレーザー! – user1065969

関連する問題