我刚开始使用 Gtest,我正在编写如下所示的测试:
TEST(testFamily, specificTest) {
initData data;
ASSERT_TRUE(boolean_algorithm(data));
}
问题是我的测试代码变得不必要地臃肿,因为我有很多测试可以使用相同的数据,所以行:
initData data;
不应为每个测试重复。我知道测试应该相互独立,在这方面,使用类似常量全局的东西
const initData data;
带来诸如“您确定您的测试不会修改全局测试数据吗?”之类的问题。我应该为每个测试继续初始化相同的测试配置吗?有时初始化测试数据需要的代码比一行多得多....
最佳答案
没关系,但我会在测试类中创建该对象,而不是在全局范围内(如 Test Fixtures: Using the Same Data Configuration for Multiple Tests 中所述)。
例如,像这样:
initData CreateData()
{
initData d;
// set values
return d;
}
class testFamily : public testing::Test
{
public:
testFamily() :
data( CreateData() )
{
}
~testFamily()
{
}
initData data;
};
TEST_F( testFamily, specificTest )
{
ASSERT_TRUE(boolean_algorithm(data));
}
现在,数据结构只在一个地方计算(或设置)(CreateData()
函数)。
关于c++ - 可以吗在 Google 测试框架内的 TDD 周期中使用全局数据进行多个测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21232945/