• 《BOOST程序库完全开发指南》 第06章 正确性与测试


    当定义了宏 BOOST_ENABLE_ASSERT_HANDLER 后,使用 BOOST_ASSERT() 断言失败后,会调用 boost::assertion_failed() 函数,该函数声明在 boost 名字空间内,但特意被设计为没有实现。

    #include <iostream>
    #include <boost/format.hpp>
    
    namespace boost
    {
        void assertion_failed(char const* expr,char const * function,char const* file,long line)
        {
            boost::format fmt("Expression:%s\nFunciton:%s\nFile:%s\nLine:%s\n");        fmt %expr %function %file %line;
            std::cout<<fmt;
        }
    }
    
    #define BOOST_ENABLE_ASSERT_HANDLER
    #include <string>
    #include <cassert>
    #include <boost/assert.hpp>
    int main()
    {
        assert(1 == 1); //实际上是一个宏,尽管它不是大写。编译时加上 -DNDEBUG 无效
        std::string str = "Hello";
        BOOST_ASSERT(str.size() == 0 && "str's size is 0."); //效果同于assert(),仅在debug模式下有效。&& 后面的内容相当于注释,方便调试
    }
    #define BOOST_TEST_MAIN
    #include <boost/test/included/unit_test.hpp>
    
    BOOST_AUTO_TEST_SUITE(test_suite_1)
    
    BOOST_AUTO_TEST_CASE(test_case_1)
    {
        BOOST_CHECK(1);
        BOOST_CHECK_EQUAL(1,1);
    }
    
    BOOST_AUTO_TEST_CASE(test_case_2)
    {
        BOOST_CHECK(1);
        BOOST_CHECK_EQUAL(1,1);
    }
    
    BOOST_AUTO_TEST_SUITE_END()
  • 相关阅读:
    Eclipse编辑properties文件中文乱码
    Spark安装
    安装VirtualBox后,VMware不能上网
    Hadoop Eclipse插件编译
    MapReduce 常见问题
    MapReduce 气象数据集
    Maven构建Hadoop开发环境
    Eclipse安装Maven
    吴恩达深度学习笔记 course4 week2 深度卷积网络 实例探究
    吴恩达深度学习笔记 cousrse4 week1作业
  • 原文地址:https://www.cnblogs.com/tianyajuanke/p/2736898.html
Copyright © 2020-2023  润新知