我正在寻找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();
}