gtest中的参数化测试允许您使用不同的参数测试代码,而无需编写相同测试的多个副本
我见过传递值,std::pair,std::tuple等的例子。
但是我不确定如何将array/initializer_list传递到测试中。
预期如下:
INSTANTIATE_TEST_SUITE_P(Sample, FooTest,
testing::Values({1,23,53},{534,34,456));
有可能吗? 如果是,如何?
您可以传递任何类型作为参数。 当您从类模板WithParamInterface
(或TestWithParam
)继承测试夹具a时,您将提供参数类型:
class FooTest: TestWithParam<std::array<int, 3>>
//class FooTest: TestWithParam<std::vector<int>>
//class FooTest: TestWithParam<std::initializer_list<int>> //I'm not sure if this is a good idea, initializer_list has weird lifetime management
{};
INSTANTIATE_TEST_SUITE_P(Sample, FooTest,
testing::Values({1,23,53},{534,34,456});