GTEST:如何将数组列表作为INSTANTIATE_TEST_CASE_P的ValuesIn中的参数传递?

问题描述 投票:0回答:1

我想将整数数组的列表作为容器传递给GTEST中的参数化类。

例如:-

const int* par_Array[] = {
        { 1, 869, 1200, 1300 },
        { 1, 1, 1, 1 }
    };

class testSafetyInterface_failingTestForTargetArrayBoundaryVal :
  public testSafetyInterface,
  public ::testing:: WithParamInterface<int* []>{
};

INSTANTIATE_TEST_CASE_P(
        testSafetyInterface_failBoundaryTest,
        testSafetyInterface_failingTestForTargetArrayBoundaryVal,
        ::testing::ValuesIn(par_Array));

但是我无法理解语法和文档。

非常感谢在这里获得任何帮助。预先感谢!

c++ unit-testing googletest
1个回答
0
投票
  1. const int* par_Array[]是标量对象,因此无法进行多括号初始化。
  2. ValuesIn的参数为const T (&array)[N],因此您需要传递T类型的数组

如果Tint类型,则数组初始化看起来如下,

int par_Array[] = {1, 869, 1200, 1300 , 1, 1, 1, 1 }; //i.e list of possible input values

如果T的类型为int*[],则指针数组应作为参数。并且par_Array初始化如下所示,

int a1[]{};
int a2[]{};
int a3[]{};    
int * par_Array[] = {a1,a2,a3};
© www.soinside.com 2019 - 2024. All rights reserved.