我的应用程序中的每个类都有一个.h和.cc文件。然而,在我的单元测试项目中,情况有所不同。在这里,我为每个我想测试的应用程序类都有一个gtest单元测试类,每个类只在 .cc 文件中定义和声明。所以没有.h。
我做出了这个决定,因为我觉得我不需要.h文件:
我为每个测试.cc文件获取.obj文件,但至少在VS2012中,一个此类文件的更改会导致重建所有其他测试.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文件。所有其他文件都保留在项目中。