大佬教程收集整理的这篇文章主要介绍了GTest 参数化测试从数组或类似解包 Values 参数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用 GTest 进行简单的参数化测试,例如:
// Add an OnClickListener to the dialog,so that the SELEction will be handled. builder.setMultiChoiceItems( categorIEs,checkedItems,new DialogInterface.onMultiChoiceClickListener() { @OverrIDe public voID onClick(DialogInterface dialog,int which,Boolean ischecked) { checkedItems[which] = ischecked; } } );
@H_696_7@
如果我想从数组中生成值,例如:
class Example :public ::tesTing::TestWithParam<std::tuple<int,int>> { }; test_P(LeapYearMultipleParametersTests,checksIfLeapYear) { int a = std::get<0>(Getparam()); int b = std::get<1>(Getparam()); ASSERT_EQ(a,b); } INSTANTIATE_test_CASE_P( Ex,Example,::tesTing::Values( std::make_tuple(0,0),std::make_tuple(1,2) ));
@H_696_7@
然后使用该数组作为
auto make_values() { std::tuple<int,int> res[2]; res[0] = std::make_tuple(0,0); res[1] = std::make_tuple(1,2); return res; }
中的参数,例如:::tesTing::Values(...)
@H_696_7@如何将数组解包为多个参数?
编辑:
我已经找到了一个定义模板函数的部分解决方案
INSTANTIATE_test_CASE_P( Ex,::tesTing::Values(make_values()) ));
@H_696_7@然后像这样使用它:
template<typename T,std::size_t... I> auto values(T* t,std::index_sequence<I...>) { return ::tesTing::Values(t[I]...); }
@H_696_7@但是第二个参数
values(make_values() /*res*/,std::make_index_sequence<2>{});
并不是很优雅。无论如何,使用另一个std::make_index_sequence<2>{}
来提供第二个参数是可能的吗?解决方法
问题的关键是使用
::tesTing::ValuesIn
而不是::tesTing::Values
。因为在您的情况下,您正在传递容器而不是一堆值。完整的答案将如下所示:class Example : public ::tesTing::TestWithParam<std::tuple<int,int>> { }; test_P(Example,checksIfLeapYear) { int a = std::get<0>(GetParam()); int b = std::get<1>(GetParam()); ASSERT_EQ(a,b); } using ValuesContainer = std::vector<std::tuple<int,int>>; ValuesContainer make_values() { ValuesContainer res; res.emplace_BACk(0,0); res.emplace_BACk(1,2); return res; } INSTANTIATE_test_CASE_P( Ex,Example,::tesTing::ValuesIn(make_values()) );
@H_696_7@@H_618_62@@H_618_62@大佬总结
以上是大佬教程为你收集整理的GTest 参数化测试从数组或类似解包 Values 参数全部内容,希望文章能够帮你解决GTest 参数化测试从数组或类似解包 Values 参数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。猜你在找的程序问答相关文章
- 在烧瓶中重定向时发出POST请求 2022-06-02
- 从 CreateWindow() 返回的 HWND 的格式值是多少? 2022-05-31
- 使用nodejs打印json对象内容 2022-05-31
- useEffect 无限循环仅在测试时发生,否则不会发生 - 尽管使用 useReducer 2022-05-31
- 从雅虎财经检索 ESG 分数 2022-05-31
- Gulp:获取“必须指定任务功能”错误,但我只有 1 个任务 2022-05-31
- JavaScript 将平面数组转换为嵌套/分组和排序数组 2022-05-31
- 405 Method Not Allowed 当提交表单到 Flask 时,即使路由有 ['GET', 'PO... 2022-05-31
- Mongodb 错误码和对应的 http 状态码 2022-05-31
- 连接到上游时 Nginx connect() 失败(111:连接被拒绝),客户端:192.168.128.1,服务... 2022-05-31