我有一个 boost 测试用例。这个测试用例的大部分行都是不管参数怎样都会执行的。但是也有一些基于提供的参数来执行的部分。我想避免编写两个几乎相同但在某些细节上略有不同的测试用例。因此,我需要使用以下方法之一来创建参数化测试用例:
BOOST_FIXTURE_TEST_CASE(caseA, Fixture)
{
TestFunction("parameterA");
}
BOOST_FIXTURE_TEST_CASE(caseB, Fixture)
{
TestFunction("parameterB");
}
void TestFunction(string param)
{
// ...
// lots of common checks regardless of parameters
// ...
if(param == "parameterA")
BOOST_CHECK(...);
else if(param == "parameterB")
BOOST_CHECK(...);
}
有没有其他更方便的方法来实现我的目标?我找到了BOOST_PARAM_CLASS_TEST_CASE宏,但我不确定它在这种情况下是否相关。