У меня есть параметризованный класс gtest, который я хотел бы вызвать между SetUp и TearDown между каждым параметром. Я знаю, что googletest предлагает SetUp перед каждым тестом и SetUpTestCase перед ВСЕМИ тестами.
У меня есть что-то вроде этого:
class MyParameterizedTest: public TestWithParam<MyParams>
{
public:
MyParameterizedTest() {}
void SetUp()
{
//called before every test case
}
void TearDown()
{
//called after every test case
}
static void SetUpTestCase()
{
//called at the begining of framework and before all test cases
}
static void TearDownTestCase()
{
//called at the end of the framework and after all test cases
}
//Wishing for something like:
// void SetUpParameter()
{
//called before start of parameter
}
};
INSTANTIATE_TEST_CASE_P(RegistrationTest, InterfaceTest, ValuesIn(AllTheValues::GetAllMyParams()));
Какие-нибудь мысли о том, как это работает? Может быть, способ узнать, когда последний тестовый пример был запущен для определенного параметра? Или мне придется создавать тестовый пример для каждого отдельного параметра?
Я думаю, что создание таких комбинаций против хорошей практики, потому что:
Возможное решение:
— создавать отдельные тестовые случаи. Оно работает. Идти против рамок — это почти всегда плохой маршрут. Что, если структура изменится? Возможно, вам придется выровнять все ваши тесты … что на самом деле неправильно в рабочем коде.