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 ответ:
Документация
gtest
здесьнамекает на этот ответ: одно приспособление предназначено для одной тестовой среды для нескольких тестовых случаев. Все тестовые случаи, разделяющие одно и то же приспособление, имеют одинаковыйsetUp()
. Если требуется несколько установок (напр. два типа установок для тестовых случаев тестирования одного класса), то следует использовать несколько приспособлений (напр. два приспособления и тестовые случаи, относящиеся либо к первому, либо ко второму).Короче говоря, у меня есть ощущение, что один светильник == одна установка, и использовать столько же приспособления для тестирования одного класса / одной части кода в качестве различных настроек, которые вам понадобятся.
Достаточно ли справедлив этот ответ?Каково Ваше мнение ?