[英]Google test, Typed test, 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
你不需要创建这个 class 的实例,你已经有了它:
TYPED_TEST(Something, Arithmetics) {
EXPECT_EQ(this->value, 0);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.