我刚刚开始研究使用Google Test作为测试框架的代码库(我不熟悉)。参数化测试在我认为通常的方式中或多或少地被广泛使用:
class TestCaseName: public ::testing::TestWithParam<Params> {
// fairly complex setup
}
TEST_P(TestCaseName, TestName) {...}
INSTANTIATE_TEST_CASE_P(UniqueName, TestCaseName, CombinedInput);
问题是通常测试需要一些特定的额外输入。
可以使用TestCaseName
的不同值创建不同版本的Params
,但这会复制相当数量的代码。
否则,可以将单个参数添加到Params
,对应于自定义AdditionalInput
类,其中包含所有可能的附加输入的字段。根据需要扩展TestCaseName
,设置可以是专门的。
有没有更好的方法来解决这个问题?