繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM