【问题标题】:How to get the test outcome programmatically in boost如何在 boost 中以编程方式获得测试结果
【发布时间】:2013-06-15 01:08:50
【问题描述】:

是否可以确定升压测试的结果?

例如if boost 支持 if 语句,

if( BOOST_CHECK_SMALL(Fred,0.001))
{
    ...
    printValuesInTest("This value failed:",Fred);
}

如果陈述似乎确实有效,或者我可能今天过得很糟糕。

【问题讨论】:

  • 你能更清楚你的问题到底是什么吗?我听不懂你。

标签: c++ unit-testing boost tdd


【解决方案1】:

我认为你正在接近这个错误。单元测试工具通常由 test runner 执行。这些类型的框架的全部意义在于避免做类似的事情

// you dont need a unit testing framework to do this! 
if(false_cond())
{
    print_error(...)
    // do other error reporting stuff
}

重点是您不要尝试直接运行这些测试,而是使用单元测试框架的宏和命名方案来注册 测试案例(每个案例都由一个或多个测试断言/条件组成)。这些测试用例有时可以使用测试套件分为类别和子类别。然后测试运行器将运行所有测试并给你一个报告。

这样做的主要好处是您可以专注于测试的逻辑,而不是创建、维护和担心测试/错误报告的机制 .因此,在使用单元测试框架时,您不应该检查假设是否正确,而应该断言它是真还是假。同样,您应该尝试立即处理错误报告;您应该将任何描述信息交给单元测试框架,以便它可以正确报告。

Boost 为测试运行程序如何链接到您正在测试的库提供了多种选项。通常,一旦您包含带有正确宏的标头,运行您的库实际上将运行测试运行器,它将运行您的所有测试。您还可以选择使用外部测试运行器。

这里有一个better intro,用于比官方文档提升单元测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多