【问题标题】:Google test, Typed test, C++谷歌测试、类型化测试、C++
【发布时间】:2020-12-15 10:21:11
【问题描述】:

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

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

我做错了什么???

【问题讨论】:

    标签: c++ templates googletest typed


    【解决方案1】:

    您不是从testing::Test 派生Something

    should look 是这样的:

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

    那么在TYPED_TEST里面你不需要创建这个类的实例,你已经有了它:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 2012-01-20
      • 2012-03-30
      • 2011-06-14
      • 1970-01-01
      • 2012-08-17
      • 2014-04-04
      相关资源
      最近更新 更多