0

我使用 boost.test 作为测试套件。我想知道是否有可能为测试做一些先决条件。例如

uniqut_ptr< MyClass > g_class;

BOOST_AUTO_TEST_CASE( test1 )
{
    BOOST_REQUIRE_NO_THROW( g_class = CreateMyClass() );
}

BOOST_AUTO_TEST_CASE( test2 )
{
    // This test need the test1 as passed
    BOOST_REQUIRE( g_class->doSomething() );
}

在这种情况下,如果 test1 失败,程序将在 test2 中崩溃。我知道我可以BOOST_REQUIRE( g_class )在每次测试开始时添加。但是还有其他方法吗?

4

1 回答 1

2

当您要求某些东西是真实的时,我看到了REQUIRE使用的提升,因此将要求放在每个测试的顶部。或者考虑使用测试夹具并在设置功能中进行设置。这里有一些例子 闻起来就像你试图在测试中使用全局变量,所以它们可能会以可怕的方式交互。全球数据带来的麻烦多于其价值。

于 2013-07-05T14:27:20.573 回答