GoogleTest-есть несколько setUp () в одном приспособлении


Я unittesting 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 3

1 ответ:

Документация gtest здесьнамекает на этот ответ: одно приспособление предназначено для одной тестовой среды для нескольких тестовых случаев. Все тестовые случаи, разделяющие одно и то же приспособление, имеют одинаковый setUp(). Если требуется несколько установок (напр. два типа установок для тестовых случаев тестирования одного класса), то следует использовать несколько приспособлений (напр. два приспособления и тестовые случаи, относящиеся либо к первому, либо ко второму).

Короче говоря, у меня есть ощущение, что один светильник == одна установка, и использовать столько же приспособления для тестирования одного класса / одной части кода в качестве различных настроек, которые вам понадобятся.

Достаточно ли справедлив этот ответ?

Каково Ваше мнение ?