У меня возникли проблемы с запуском типизированного теста для моей структуры.
Итак, учтите, что в моем test.cpp
у меня есть структура шаблона
template<typename T>
struct Something {
T value;
// Constructors
};
Теперь я объявляю typedefs
как упомянутое в документации.
using MyTypes =
testing::Types<char, unsigned char, short int, unsigned short int, int,
unsigned int, long int, unsigned long int, long long int,
unsigned long long int, float, double, long double>;
Затем я создаю набор тестов и типизированный тест для своей структуры.
TYPED_TEST_SUITE(Something,MyTypes);
TYPED_TEST(Something,arithmetics) {
Something<TypeParam> smth;
.....
}
Но когда я запускаю это, я получаю ошибку компиляции error: only virtual member functions can be marked 'override' TYPED_TEST(Something,arithmetics) {
Что я делаю не так???
Вы не получаете Something
от testing::Test
.
Это должно выглядеть вот так:
template<typename T>
class Something : public testing::Test {
public:
T value;
// ...
};
Тогда внутри TYPED_TEST
вам не нужно создавать экземпляр этого класса, он у вас уже есть:
TYPED_TEST(Something, Arithmetics) {
EXPECT_EQ(this->value, 0);
}