【问题标题】:Boost.Test howto create "test dependency"Boost.Test 如何创建“测试依赖”
【发布时间】:2013-07-05 14:21:16
【问题描述】:

我使用 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 )。但是还有其他方法吗?

【问题讨论】:

  • 单元测试不应该依赖于执行的顺序。这不是 Boost.Test 的限制,而是一般的单元测试原则。要排除常见的东西,您可能需要使用固定装置
  • 但是 test1 总是先执行 test2 对吧?
  • 我猜是这样,但你不应该依赖它。您应该以一种无论执行顺序如何都能正常工作的方式编写测试
  • 除非我用随机开关调用它——不时尝试这是一件好事

标签: c++ boost-test


【解决方案1】:

当您要求某些事情为真时,我看到了 boost REQUIRE,因此将 require 放在每个测试的顶部。 或者考虑使用测试夹具并在设置功能中进行设置。有例子here 闻起来就像您试图在测试中使用全局变量,因此它们可能会以可怕的方式进行交互。全局数据比它的价值更麻烦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多