谷歌测试,打字测试,C++



我在为结构运行类型化测试时遇到问题。

所以考虑在我的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) {

我做错了什么???

您不是从testing::Test派生Something

它应该是这样的:

template<typename T>
class Something : public testing::Test {
public:
T value;
// ...
};

然后在TYPED_TEST中,您不需要创建此类的实例,您已经拥有了它:

TYPED_TEST(Something, Arithmetics) {
EXPECT_EQ(this->value, 0);
}

相关内容

  • 没有找到相关文章

最新更新