我有两个类共享完全相同的 API 和功能(它们包装不同的 3rd-party API 以提供相同的功能)。这两个类没有共同的基类/接口。
我对其中一个进行了提升单元测试,并希望在另一个上运行相同的确切测试,但现在我只知道如何复制粘贴测试并查找/替换类名。除了在两个地方更新测试很烦人之外,这也意味着不能保证两个类的测试是相同的。
有没有办法可以“模板化”一个测试用例?如果没有,你会如何解决这个问题?到目前为止,我能想到的只是(请原谅伪代码):
template<class T>
void runTests()
{
T t;
//do tests here
}
BOOST_AUTO_TEST_CASE(test_X)
{
runTests<X>();
}
BOOST_AUTO_TEST_CASE(test_Y)
{
runTests<Y>();
}
但我什至不知道这是否可行。