GoogleTest - 在一个夹具中有几个setUp()

时间:2013-03-15 10:47:06

标签: c++ unit-testing testing googletest

我正在对C ++代码进行单元测试,并且我在大型数据集上运行复杂的算法。我想在第一个简单的不切实际的数据集上运行测试,并在类似于现实的数据集上运行测试。所以,我希望我的夹具看起来像这样:

class AppsToBeTested : public ::testing::Test 
{
public:
   AppsToBeTested():member(NULL)
   {

   }

   setUp1()
   {

   }

   setUp2()
   {

   }

   tearDown()
   {

   }
protected:
   helperCreateDataset1() ;
   helperCreateDataset2() ;

};

setUp2()setUp2()调用两种不同的辅助方法,helperCreateDataset1()helperCreateDataset2()。在此版本的代码中,我不会覆盖setUp()方法,而只是使用两个帮助器setUp1()setUp2(),我将不得不在测试用例中明确地调用它们。

有两个setUp()初始化的合适方法是什么?遗产?模板?

1 个答案:

答案 0 :(得分:3)

gtest文档here提示此响应:一个fixture用于一个测试环境,用于多个测试用例。共享相同夹具的所有测试用例具有相同的setUp()。如果需要几个设置(例如,测试一个类的测试用例的两种类型的设置),则应该使用几个固定装置(例如,两个固定装置,并且测试用例指向第一个或第二个)。

简而言之,我感觉ONE FIXTURE == ONE SETUP,并使用尽可能多的灯具来测试代码的一个类/一部分作为您需要的不同设置。

这个答案是否公平?

您有什么看法?