gpt4 book ai didi

c++ - Boost Test 寄存器异常翻译器

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:13:46 26 4
gpt4 key购买 nike

有人知道在 Boost.Test 中使用自动测试用例时如何注册我的自定义异常转换器吗?我找到了一些示例(实际上很少),但它们没有显示如何将此功能与自动测试用例一起使用,这在我看来是 boost.test 的最大优势。我的示例测试套件:

    #define BOOST_TEST_MODULE StateMachineTest
#define BOOST_TEST_DYN_LINK

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE (FirstTest);

BOOST_AUTO_TEST_CASE (testBasic)
{
BOOST_CHECK (true);
}

BOOST_AUTO_TEST_SUITE_END ();

提前致谢。

最佳答案

(注意:我还在使用 Boost 1.34.1)

无论 AUTO_TEST_CASE 功能如何,要注册自定义异常处理程序,您需要实现 init_unit_test_suite 主函数。 (您不需要在那里注册任何自动测试。)

我所有的单元测试项目都使用一个 ut_main.cpp 文件,其中(大致)包含以下内容:(这是对包含实际自动测试的所有其他 cpp 文件的补充。)

void translate_mfc_exception(CException* pMfcEx) {
...
BOOST_ERROR(msg);
}
// ...
using namespace ::boost::unit_test;
test_suite* init_unit_test_suite(int argc, char* argv[])
{

// Initialize global Handlers:
unit_test_monitor.
register_exception_translator<CException*>( &translate_mfc_exception );

// Return dummy suite to make framework happy:
test_suite* test = BOOST_TEST_SUITE( "Empty Test Suite" );
return test;
}

除了自动测试用例之外,这应该是您所需要的。

关于c++ - Boost Test 寄存器异常翻译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2358282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com