我有一个必须测试的解析器。这个解析器有很多测试输入文件。通过将解析器的输出与相应的预生成文件进行比较来测试解析器的预期行为。
目前我正在测试中处理 YAML 文件以获取输入文件、预期文件及其描述(如果失败,将打印此描述)。
解析器的一些参数也应该在相同的输入上进行测试。
所以,我需要在测试中形成以下代码:
TEST(General, GeneralTestCase)
{
test_parameters = yaml_conf.get_parameters("General", "GeneralTestCase");
g_parser.parse(test_parameters);
ASSERT_TRUE(g_env.parsed_as_expected()) << g_env.get_description("General", "GeneralTestCase");
}
TEST(Special, SpecialTestCase1)
{
test_parameters = yaml_conf.get_parameters("Special", "SpecialTestCase1");
g_parser.parse(test_parameters);
ASSERT_TRUE(g_env.parsed_as_expected()) << g_env.get_description("Special", "SpecialTestCase1");
}
TEST(Special, SpecialTestCase2)
{
test_parameters = yaml_conf.get_parameters("Special", "SpecialTestCase2");
g_parser.parse(test_parameters);
ASSERT_TRUE(g_env.parsed_as_expected()) << g_env.get_description("Special", "SpecialTestCase2");
}
很容易看到代码的重复。所以我觉得有一种方法可以自动化这些测试。
提前致谢。