2017-03-02 5 views
0

私はC++でGoogleユニットテストで単体テストシステムを作っています。そして、ユニットテストのすべてのセットアップに同じ行が含まれていることに気がつき、すべての私の涙は、他のすべての行と同じです。Googleユニットテストデフォルトで設定します

ユニットテストの実際のセットアップの前にデフォルトでセットアップを作成して呼び出す方法があるのだろうかと思います。

#include <gtest.h> 
class TestExample : ::testing::Test 
{ 
    public: 
     virtual void SetUp() 
     { 
      //same line for all tests of my system 
      my_system::clean_system(); 

      //code of specific setup 
      //... 
     } 
     virtual void TearDown() 
     { 
      //Code of specific teardown 
      //... 

      my_system::clean_system(); 
     } 
}; 

答えて

1

あなたが代わりに::testing::Testおよび過負荷CustomSetUp()するのではなく、あなたのユニットテストでTestWrapperクラスを使用しますが、デフォルトSetUp()を定義するラッパークラスすなわちTestWrapperを作成し、CustomSetUp()

#include <gtest.h> 

class TestWrapper: public ::testing::Test 
{ 
    public: 
     virtual void CustomSetUp() {} 
     virtual void SetUp() 
     { 
      //same line for all tests of my system 
      my_system::clean_system(); 

      CustomSetUp(); //code of specific setup 
     } 
}; 

に呼び出すことができますSetUp()

class TestExample : public TestWrapper 
{ 
    public: 
     virtual void CustomSetUp() 
     { 
      //code of specific setup 
      //... 
     } 
     virtual void TearDown() 
     { 
      //Code of specific teardown 
      //... 

      my_system::clean_system(); 
     } 
}; 
+0

はい、私はそう思いましたそのようなメーリングは、私はこの質問をセットアップする前に、または同様の何かを呼び出すポインタ関数を設定するには、Googleテスト内にいくつかのメソッドが存在するかどうかを知って尋ね、プログラマーはこの手順をスキップして残してください。しかし、とにかく、ありがとう、私はラッパーを行います。^^ – Check

関連する問題