2

我的应用程序中的每个类都有一个 .h 和 .cc 文件。然而,在我的单元测试项目中,情况有些不同。在这里,我为要测试的每个应用程序类都有一个 gtest 单元测试类,并且每个类仅在.cc文件中定义和声明。所以没有.h。

我做出这个决定是因为我觉得我不需要 .h 文件:

  • 我不会在其他地方重用测试课程,因为这很痛苦,而且
  • 在执行 tdd 时,在 testx.h、testx.cc、x.cc、xh、ix.h、mockz.h 等之间一直跳来跳去。
    • 所以我想少一个文件。

我为每个测试 .cc 文件获取 .obj 文件,但是至少在 VS2012 中,一个这样的文件的更改会导致所有其他测试 .cc 文件被重建。

请注意,在这种情况下,不会重建被测类,只是这些“有趣”的 .cc 文件,我有我的测试。这样的文件如下所示:

测试X.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