我想使用 boost::test 编写一个参数化的单元测试。最好我想将参数传递给我的夹具类。我用相同的设置和拆卸场景编写了多个测试用例,所以它会非常方便。不幸的是,我知道 boost::test 框架假设夹具类有一个零构造函数。所以我看不到任何方法可以在夹具类中传递测试参数。
你知道我怎样才能正确设计我的测试吗?
BOOST_DATA_TEST_CASE_F
我唯一的猜测是在测试体内使用和调用一些辅助方法。或多或少是这样的:
struct Fixture
{
Fixture( void )
{
// initialise 'zombie' fixture
}
void set_up( int parameter )
{
// common init with parameter
// fixture is fully functional now
}
};
BOOST_DATA_TEST_CASE_F(
Fixture,
DummyTest,
boost::unit_test::data::make<int>( { 1,2,3 } )
)
{
set_up( sample ); // `sample` variable is provided by boost::test
BOOST_TEST(true);
}
但是,我不喜欢在set_up
每次测试开始时添加方法的想法。也许在提升中,有一些隐藏的功能可以在这种情况下重复使用?