gpt4 book ai didi

c++ - gtest - 测试模板类

转载 作者:可可西里 更新时间:2023-11-01 17:51:36 26 4
gpt4 key购买 nike

我想用 gtest 测试一个模板类。我在 Google Test manual 中阅读了有关 TYPED_TEST 的信息并查看了official example他们引用了,但我仍然无法全神贯注地获取在我的测试中实例化的模板类对象。

假设有以下简单的模板类:

template <typename T>
class Foo
{
public:
T data ;
};

在测试类中我们声明

typedef ::testing::Types<int, float> MyTypes ;

现在如何在测试中为 MyTypes 中列出的 Ts 实例化类 Foo 的对象?例如

TYPED_TEST(TestFoo, test1)
{
Foo<T> object ;
object.data = 1.0 ;

ASSERT_FLOAT_EQ(object.data, 1.0) ;
}

最佳答案

在测试中,引用特殊名称TypeParam 来获取类型参数。所以你可以做

TYPED_TEST(TestFoo, test1)
{
Foo<TypeParam> object ; // not Foo<T>
object.data = 1.0 ;

ASSERT_FLOAT_EQ(object.data, 1.0) ;
}

关于c++ - gtest - 测试模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17079702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com