首页 > 解决方案 > 如何结合“价值”和“结合”?

问题描述

我想为笛卡尔积添加一些特殊的值。像这样的东西:

INSTANTIATE_TEST_SUITE_P(Test, Test, 
    testing::Values(
        testing::Combine(
            testing::Values(1, 2, 3), 
            testing::Values("one", "two", "three")),
        testing::Values(std::make_tuple(12345, "big value"))));

但它不起作用。还有其他工作方式吗?

标签: c++c++17googletest

解决方案


你可以做两个实例化:

INSTANTIATE_TEST_SUITE_P(TestSanity, Test, 
    testing::Combine(
        testing::Values(1, 2, 3), 
        testing::Values("one", "two", "three")));

INSTANTIATE_TEST_SUITE_P(TestSpecial, Test, 
    testing::Values(std::make_tuple(12345, "big value")));

Combine()接受其他生成器作为输入,但这是不可取的。但是,可以通过使用两个单独的宏调用来轻松解决该问题,从您的测试中生成两个测试套件。在线查看


推荐阅读