boost单元测试框架

阅读: 评论:0

boost单元测试框架
头⽂件:
#include <boost/test/unit_test.hpp>
编译加:-lboost_unit_test_framework
单元测试:
需要定义BOOST_TEST_MAIN做为主测试⼊⼝
使⽤注意:
#define BOOST_TEST_MAIN  //⼀定要有,且要放在unit_tset.hpp的前⾯,否则:(unit_test_main.obj) : error LNK2019: ⽆法解析的外部符号 "class boost::unit_test::test_suite * __ #include <boost/test/unit_test.hpp>
为了使⽤⽅便,⼀般编译为静态库。以便于最终发布程序,不需要打包Boost的Dll。且根据实际编译情况,发现静态库编译速度较快。
灯管支架⽣成⽂件描述。
⽂件名含义编译选
libboost_unit_test_framework-vc80-mt-gd-1_48.lib 静态库,多线程,调试版本
使⽤静态调试版本C运⾏时库(LIBCMTD.LIB和LIBCPMTD.LIB)
/MTd
libboost_unit_test_framework-vc80-mt-1_48.lib 静态库,多线程
使⽤静态版本C运⾏时库(LIBCMT.LIB和LIBCPMT.LIB)
/MT
led调光电源
boost_unit_test_framework-vc80-mt-gd-1_48.lib 静态库,多线程,调试版本
使⽤动态调试版本C运⾏时库(MSVCRTD.LIB和MSVCPRTD.LIB)
/
MDd
boost_unit_test_framework-vc80-mt-1_48.lib 静态库,多线程
使⽤动态版本C运⾏时库(MSVCRT.LIB和MSVCPRT.LIB)
/MD
需求确定后,先写单元测试代码,测试代码随需求⽽变。
测试代码着眼于被测代码应该如何运⾏,⽽不是复现被测代码是如何实现的。
能否写好单元测试代码表⽰对需求的理解是否到位。
如果每个模块都经过单元测试,那么集成后出现的问题就可以确认为是模块间传递消息时出现的问题,从⽽将bug隔离出来,这是单元测试的真正亮点。
创建⽰例⼯程。
vs2005创建win32控制台⼯程,例⼯程名为BoostTest。
配置头⽂件路径。
ConfigurationProperties->C/C++->General->Additional Include Directories路径设置。
对应本例,设置为D:\boost_1_48_0。
Lib库路径配置
Configuration Properties->Linker->General->AdditionalLibrary Directories路径设置。
对应本例,设置为D:\boost_1_48_0\stage\lib。
依赖库设置
设置项ConfigurationProperties->Linker->Input->Additional Dependencies。Debug为:libboost_unit_test_framework-vc80-mt-gd-1_48.lib。
mnccRelease为:libboost_unit_test_framework-vc80-mt-1_48.lib。BoostTest.cpp源码如下:
#define BOOST_TEST_MAIN
#include <boost/test/included/unit_test.hpp>
#include <boost/assign.hpp>
#include <iostream>
using namespace std;
struct global_fixture
{
global_fixture() { cout << ("global setup\n") << endl; }
~global_fixture() { cout << ("global teardown\n") << endl; }
};
BOOST_GLOBAL_FIXTURE(global_fixture);
struct assign_fixture
{
assign_fixture() { cout << ("suit setup\n") << endl; }
~
assign_fixture() {cout << ("suit teardown\n") << endl; }
vector<int> v;
};
BOOST_FIXTURE_TEST_SUITE(s_assign, assign_fixture)
硬质合金丝锥BOOST_AUTO_TEST_CASE(t_assign_1)植物伟哥
{
using namespace boost::assign;
v += 1,2,3,4;
BOOST_CHECK_EQUAL(v.size(), 4);
BOOST_CHECK_EQUAL(v[2], 4);
}
BOOST_AUTO_TEST_SUITE_END()
本例是个简单的单元测试。
⽤来检测vector容器,条⽬数是否为4,以及第三个值是否为4。
液化气燃烧器运⾏程序,输出信息为:error in "t_assign_1": check v[2] == 4 failed [3 != 4]。
检测出第三个值不为4。

本文发布于:2023-05-18 18:56:25,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/104378.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:1
下一篇:Aptamer Arrays
标签:代码   单元测试   程序   需求   版本   设置   编译   静态
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图