3

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

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

   }

   setUp1()
   {

   }

   setUp2()
   {

   }

   tearDown()
   {

   }
protected:
   helperCreateDataset1() ;
   helperCreateDataset2() ;

};

使用setUp2()setUp2()调用两个不同的辅助方法,helperCreateDataset1()helperCreateDataset2()分别调用。在这个版本的代码中,我没有覆盖setUp()方法,而只是使用两个助手setUp1()setUp2()我必须在测试用例中显式调用它们。

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

4

1 回答 1

2

此处gtest文档暗示了此响应:一个夹具用于多个测试用例的一个测试环境。共享相同夹具的所有测试用例具有相同的 . 如果需要多个设置(例如,测试一个类的测试用例的两种设置),则应使用多个夹具(例如,两个夹具,以及引用第一个或第二个的测试用例)。setUp()

简而言之,我觉得 ONE FIXTURE == ONE SETUP,并使用尽可能多的夹具来测试你的代码的一个类/一部分,就像你需要的不同设置一样。

这个答案足够公平吗?

你有什么意见 ?

于 2013-03-15T12:50:56.507 回答