我正在对C ++代码进行单元测试,并且我在大型数据集上运行复杂的算法。我想在第一个简单的不切实际的数据集上运行测试,并在类似于现实的数据集上运行测试。所以,我希望我的夹具看起来像这样:
class AppsToBeTested : public ::testing::Test
{
public:
AppsToBeTested():member(NULL)
{
}
setUp1()
{
}
setUp2()
{
}
tearDown()
{
}
protected:
helperCreateDataset1() ;
helperCreateDataset2() ;
};
setUp2()
和setUp2()
调用两种不同的辅助方法,helperCreateDataset1()
和helperCreateDataset2()
。在此版本的代码中,我不会覆盖setUp()
方法,而只是使用两个帮助器setUp1()
和setUp2()
,我将不得不在测试用例中明确地调用它们。
有两个setUp()初始化的合适方法是什么?遗产?模板?
答案 0 :(得分:3)
gtest
文档here提示此响应:一个fixture用于一个测试环境,用于多个测试用例。共享相同夹具的所有测试用例具有相同的setUp()
。如果需要几个设置(例如,测试一个类的测试用例的两种类型的设置),则应该使用几个固定装置(例如,两个固定装置,并且测试用例指向第一个或第二个)。
简而言之,我感觉ONE FIXTURE == ONE SETUP,并使用尽可能多的灯具来测试代码的一个类/一部分作为您需要的不同设置。
这个答案是否公平?
您有什么看法?