2

アプリケーションの各クラスには、.h ファイルと .cc ファイルがあります。ただし、私の単体テスト プロジェクトでは、状況が少し異なります。ここでは、テストしたいアプリケーション クラスごとに gtest ユニット テスト クラスを用意しています。各クラスは.ccファイルでのみ定義および宣言されています。だからいいえ.h。

.h ファイルが必要だとは思わなかったので、この決定を下しました。

  • テストクラスを他の場所で再利用することはありません。それは面倒だからです。
  • tdd を実行して、testx.h、testx.cc、x.cc、xh、ix.h、mockz.h などの間を常にジャンプする場合。
    • それで、私が思ったファイルが1つ少なくなりました。

テスト .cc ファイルごとに .obj ファイルを取得しますが、少なくとも VS2012 では、そのようなファイルの 1 つを変更すると、他のすべてのテスト .cc ファイルが再構築されます。

この場合、テスト対象のクラスは再構築されないことに注意してください。これらの「おかしな」.cc ファイルだけが、私のテストがあります。このようなファイルは次のようになります。

TestX.cc:

#include <gtest/gtest.h>
#include "X.h"
#include "factory/YFactory.h"

namespace A
{

class TestX : public ::testing::Test
{
protected:
    TestX() {
    }
};

TEST_F (TestX, firstTest)
{
    EXPECT_TRUE(true);
}
}

このようにテストを実装するのは間違っていると思いますか? そうでない場合、なぜそれらは常に再構築されているのですか?

現時点では、この問題を回避するために、実装しているクラスのテスト .cc ファイルのみを含めています。他のすべてのファイルはプロジェクトに残ります。

4

0 に答える 0