Googletest:价值参数化类型化测试

时间:2018-12-09 19:55:44

标签: c++ googletest

假设我有一个接口iface及其两个实现AB。现在,通过读取某些文件A来构造类Bf1,f2,...,fm.的对象,也就是说,有m个对象,如果考虑两个实现类{{1 }}和A,总共有B个对象。 现在,https://github.com/abseil/googletest/blob/master/googletest/docs/advanced.md#how-to-write-value-parameterized-tests是自动化将文件名2m传递给构造函数的步骤的良好起点。然后只需使用f1,...,fm。 另一方面,有一个类型测试的概念:on能够提供接口的不同实现,像这样

INSTANTIATE_TEST_CASE_P(MyGroup, BarTest, testing::Values(<some-way-of-getting-filenames>))

在这里,typedef Types<A,B> impls; INSTANTIATE_TYPED_TEST_CASE_P(MyName, // Instance name FooTest, // Test case name impls); // Type list 被定义为

FooTest
再次根据https://github.com/abseil/googletest/blob/master/googletest/samples/sample6_unittest.cc上的文档/样本, 而template<class T> class FooTest : public ::testing::Test { //... } 被定义为

BarTest

现在,我可以看到我需要的是class BarTest : public ::testing::Test, public ::testing::TestWithParam<const char*> INSTANTIATE_TEST_CASE_P的组合,它们是在INSTANTIATE_TYPED_TEST_CASE_P派生的类FooBarTest上并且还具有模板参数testing::Test, TestWithParam。问题是,这可能吗?有这样的宏吗?

0 个答案:

没有答案