c++ - GTest 有类似 Catch2 GENERATE 的东西吗?
问题描述
Catch2 GENERATE 看起来很不错,我想在 GTest 中使用类似的东西。
我知道 GTest 中的参数化测试,但我不喜欢从测试主体和值列表中拆分出来,以及对 GetParam() 的丑陋调用。
此外,我喜欢 Catch2 中 GENERATOR 的范围、拍摄、随机功能。
对于那些不熟悉 GENERATE 的人:这是一种神奇的迭代(针对列出的每个值运行测试,而无需用户显式循环这些值)。如果它们是嵌套的,则它们充当“笛卡尔积”,即这将运行此测试 10 次(“one” 2x2 次,“two” 2x3 次)。
TEST_CASE("Generators") {
auto i = GENERATE(1, 2);
SECTION("one") {
auto j = GENERATE(-3, -2);
REQUIRE(j < i);
}
SECTION("two") {
auto k = GENERATE(4, 5, 6);
REQUIRE(j != k);
}
}
range、take、random 是生成值的助手(文档)。
解决方案
推荐阅读
- perl - perl 获取站点路径
- python - 解析多个“msg”文件并将正文文本存储在 csv 文件中
- ms-access - 删除主键时出现语法错误
- django - Django 2.0自动完成字段,如何防止外键映射被更改,但允许编辑
- asp.net-core - EF 2.1 中的种子数据与相关实体
- excel - 使用 VBA 更改数据透视表的源数据
- xcode - 在 Xcode 中双击 SHIFT 以“快速打开”
- angular - 对象具有价值但内部的属性没有 - 角度
- python - 不使用 Xpath 从脚本标签中检索数据
- python - 为什么这个 `zip()` 代码示例有不同的输出?