我正在使用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 )
。但还有另一种方式吗?
答案 0 :(得分:2)
当您需要某些内容时,我会看到提升REQUIRE
,因此请将需求放在每个测试的顶部。
或者考虑使用测试夹具并在设置功能中进行设置。有一些例子here
它有点像你试图在测试中使用全局变量,因此它们可能以可怕的方式进行交互。全球数据比它的价值更麻烦。