1

我想使用 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每次测试开始时添加方法的想法。也许在提升中,有一些隐藏的功能可以在这种情况下重复使用?

4

0 回答 0