3

私はC++コードの単体テストを行っており、膨大なデータセットに対して複雑なアルゴリズムを実行しています。最初の単純な非現実的なデータセットでテストを実行し、現実のようなデータセットでテストを実行したいと思います。だから、私は私のフィクスチャを次のようにしたいと思います:

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

   }

   setUp1()
   {

   }

   setUp2()
   {

   }

   tearDown()
   {

   }
protected:
   helperCreateDataset1() ;
   helperCreateDataset2() ;

};

2つの異なるヘルパーメソッドを使用しsetUp2()て呼び出し、およびresp。このバージョンのコードでは、メソッドを上書きしていませんが、2つのヘルパーを使用しているだけで、テストケースで明示的に呼び出す必要があります。setUp2()helperCreateDataset1()helperCreateDataset2()setUp()setUp1()setUp2()

2つのsetUp()初期化を行うための適切な方法は何でしょうか?継承?テンプレート?

4

1 に答える 1

2

ここのgtestドキュメント、この応答を示唆しています。1 つのフィクスチャは、複数のテスト ケースの 1 つのテスト環境用です。同じフィクスチャを共有するすべてのテスト ケースには、同じsetUp(). 複数のセットアップが必要な場合 (例: 1 つのクラスをテストするテスト ケース用の 2 種類のセットアップ)、複数のフィクスチャを使用する必要があります (例: 2 つのフィクスチャと、最初のフィクスチャまたは 2 番目のフィクスチャを参照するテスト ケース)。

要するに、1 つのフィクスチャ == 1 つのセットアップという感じで、必要なさまざまなセットアップと同じ数のフィクスチャを使用して、コードの 1 つのクラス / 1 つの部分をテストします。

この答えは十分に公平ですか?

あなたの意見は何ですか ?

于 2013-03-15T12:50:56.507 に答える