• boost test学习(一)


    据说相比之cppunit等其它的测试工具更好用,反正当初cppunit没能够在实际工作中派上用场,今天突然看到boost test库,而且是boost库内置的,研究一下。

    test库将测试程序定义为一个测试模块,由测试安装,测试主体,测试清理和测试运行器四个部分组成。测试主体是测试模块的实际运行部分,由测试用例和测试套件组织成测试树的形式。

    刚开始测试时,老是会报如下的链接错误:

    libboost_unit_test_framework-vc90-mt-gd-1_47.lib(unit_test_main.obj) : error LNK2019: 无法解析的外部符号 "class boost::unit_test::test_suite * __cdecl init_unit_test_suite(int,char * * const)" (?init_unit_test_suite@@YAPAVtest_suite@unit_test@boost@@HQAPAD@Z),该符号在函数 _main 中被引用
    1>E:\study\test_boost_suit\Debug\test_boost_suit.exe : fatal error LNK1120: 1 个无法解析的外部命令

    怀疑是系统环境没设对,打开其它几个使用boost库的程序,编译,运行正常。再到boost目录中查找对应的lib,也能找到,网上再看别人类似的错误,然后将#define BOOST_TEST_MODULE maintest放在#include <boost/test/unit_test.hpp>之前,如下代码排布:

    // test_boost_suit.cpp : 定义控制台应用程序的入口点。
    //
     
    #define BOOST_TEST_MODULE maintest
     
    #include <boost/test/unit_test.hpp>

    编译通过。

    这次测试验证了如何用boost test完成一个测试套件的问题,由于源代码少,贴出来。

    // test_boost_suit.cpp : 定义控制台应用程序的入口点。
    //
     
    #define BOOST_TEST_MODULE maintest
     
    #include <boost/test/unit_test.hpp>
    #include <boost/smart_ptr.hpp>
    using namespace boost;
    using namespace boost::unit_test;
     
     
    BOOST_AUTO_TEST_SUITE(s_smart_ptr)
     
    BOOST_AUTO_TEST_CASE(t_scoped_ptr)
    {
        scoped_ptr<int> p(new int(874));
        BOOST_CHECK(p);
        BOOST_CHECK_EQUAL(*p, 875);
     
        p.reset();
        BOOST_CHECK(p == 0);
    }
     
    BOOST_AUTO_TEST_CASE(t_shared_ptr)
    {
        shared_ptr<int> p(new int(100));
     
        BOOST_CHECK(p);
        BOOST_CHECK_EQUAL(*p, 100);
        BOOST_CHECK_EQUAL(p.use_count(), 1);
        shared_ptr<int> p2 = p;
        BOOST_CHECK_EQUAL(p, p2);
        BOOST_CHECK_EQUAL(p2.use_count(), 2);
     
        *p2 = 255;
        BOOST_CHECK_EQUAL(*p, 255);
        BOOST_CHECK_GT(*p, 200);
    }
     
    BOOST_AUTO_TEST_SUITE_END()
  • 相关阅读:
    js对象深拷贝
    数组去重
    css布局之双飞翼布局
    css布局之圣杯布局
    在浏览器中输入URL并回车后都发生了什么?
    浮动和清除浮动
    Javascript 构造函数模式、原型模式
    Javascript之对象组合继承
    js可以随意拖拽的div的实现
    博客美化 之博客的魔方效果
  • 原文地址:https://www.cnblogs.com/luhouxiang/p/2381199.html
Copyright © 2020-2023  润新知