GTEST:如何将数组列表作为参数传递到 INSTANTIATE_TEST_CASE_P 的 ValuesIn 中?
GTEST : How to pass a List of Arrays as a parameter in ValuesIn of INSTANTIATE_TEST_CASE_P?
我想将整数数组列表作为容器传递给 GTEST 中的参数化 class。
例如:-
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));
但我无法理解这样做的语法和文档。
如果能在这里得到任何帮助,我们将不胜感激。提前致谢!
const int* par_Array[]
是标量对象,因此无法进行多支撑初始化。
ValuesIn
的参数是 const T (&array)[N]
所以你需要传递 T
类型的数组
如果T
是int
类型的数组初始化简单如下,
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};
我想将整数数组列表作为容器传递给 GTEST 中的参数化 class。
例如:-
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));
但我无法理解这样做的语法和文档。
如果能在这里得到任何帮助,我们将不胜感激。提前致谢!
const int* par_Array[]
是标量对象,因此无法进行多支撑初始化。ValuesIn
的参数是const T (&array)[N]
所以你需要传递T
类型的数组
如果T
是int
类型的数组初始化简单如下,
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};