c++ - 在 gtest 中参数化单个测试
问题描述
我正在寻找 pytest 的@mark.parametrize的 gtest 模拟。
我有一个夹具和几个使用它的TEST_F -s。我想对其中一些测试进行参数化,为每个测试设置不同的参数。
具有不同参数的要求不允许我使用TEST_P。我可以为每个测试创建一个从主夹具派生的单独夹具,但它会产生太多样板代码。
是否有任何选项,或者TEST_P是 gtest 提供的唯一参数化实用程序?
这是一个例子。这是相当人为的,但应该说明我的需求。
class DBConnectionFixture : public ::testing::Test {
// create and store connection to database here
};
// @parametrize(count = [1, 10, 50, 100])
TEST_F(DBConnectionFixture, TestFetchManyRows)
{
auto rows = fetchRows(count);
for (auto row : rows) {
validateRow(row);
}
// some more code independent of count
}
// @parametrize(errorKind = ["lost_packages", "reordered_packages", "broken_packages"]
TEST_F(DBConnectionFixture, TestWithNetworkError)
{
mockNetworkError(errorKind);
writeSomething();
readSomethingAndCheckCorrectness();
}
解决方案
推荐阅读
- javascript - 我怎样才能把“” - 空格 - 在第七个字符?
- python - 计算连续 GPS 点之间的距离,并根据此距离降低 GPS 密度
- spacy - python -m spacy download en_core_web_sm 使用 spacy 3.0.3 失败
- huawei-mobile-services - 错误:使用HMS Map SDK 5.1时com.huawei.hms.maps.util包不存在
- python - Python C.Committ 在 SQLlite 中未被识别,错误仅在数据输入后在退出时显示
- solidity - “错误:返回错误:处理事务时出现 VM 异常:还原”
- windows - Windows 10 上是否有用于安装 Miniconda 的日志文件?
- python - Gremlin:如何使用 python 导入 IO
- google-sheets - 如果相邻单元格为空白,则在列中创建序列计数(Google 表格)
- html - CSS中的按钮边框