c++ - GTEST : How to pass a List of Arrays as a parameter in ValuesIn of INSTANTIATE_TEST_CASE_P?

标签 c++ unit-testing googletest

我想将整数数组列表作为容器传递给 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));

但我无法理解这样做的语法和文档。

如果能在这里得到任何形式的帮助,我们将不胜感激。提前致谢!

最佳答案

  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

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

int a1[]{};
int a2[]{};
int a3[]{};    
int * par_Array[] = {a1,a2,a3};

关于c++ - GTEST : How to pass a List of Arrays as a parameter in ValuesIn of INSTANTIATE_TEST_CASE_P?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59727948/

相关文章:

c++ - 指针和动态分配的数组

c++ - c++中隐藏特定函数的一种方法

c# - xUnit.net 中的测试参数化类似于 NUnit

c++ - CMake GoogleTests 找不到我的测试文件中导入的头文件

c++ - 如何使用GTest测试命令行选项解析器

c++ - Boost 的 Sublime Text 2 问题

c++ - 有没有办法将容器值传递给可变参数函数?

java - 如何模拟 Wicket 组件

c++ - VS2010中的单元测试

c++ - Googletest 编译错误 : ‘xyzTest’ was not declared in this scope