如何使用boost.test
来源:互联网 发布:怎么查淘宝宝贝降权 编辑:程序博客网 时间:2024/05/18 22:12
boost.test能做什么?
该库仅能进行UT级别的测试,也能进行模块级别的测试(MT, Module Test),目前在我们的基站的OM端是进行MT级别的测试。
如何写测试用例?
且看一个例子:
BOOST_AUTO_TEST_SUITE(CONF_Validator_TEST_SUITE)BOOST_AUTO_TEST_CASE(UC005_VerLicParamsInConfFile_RAN2126_FeatInScfOn_LicEnabled){ UC005_Fixture testCase; sendEvStartLicenceHandlingReq(testCase.pClient); testCase.pClient->opSendevVerifyLicenceParametersInConfFileReq("SCFC", "_1.xml", "rom/", true, CONF_Validator_IF::ePhase_Activation); LOG_CHECK << regex("CConf_Licence.*Licence rfSharingEnabled in SCF file is ON") << WAIT(); LOG_CHECK << regex("CConf_Licence.*evLicenceRequestResp for feature 1920 received from OPT with success code 1.") << WAIT(); LOG_CHECK << regex("CConf_Licence.*evLicenceRequestResponse received with status Enabled") << WAIT(); LOG_CHECK << "Client: evVerifyLicenceParametersInConfFileReply received with status OK" << WAIT(); BOOST_CHECK(CheckDB::checkBSParamInDB("ForOMrfSharingEnabled", "true"));}BOOST_AUTO_TEST_SUITE_END()BOOST_AUTO_TEST_SUITE(CONF_Validator_TEST_SUITE)定义了一个测试套,测试套可以保护多个测试用例,以BOOST_AUTO_TEST_SUITE_END()语句作为结束。BOOST_AUTO_TEST_CASE定义了一个测试用例,用例的名称是UC005_VerLicParamsInConfFile_RAN2126_FeatInScfOn_LicEnabled。在用例里使用了LOG_CHECK来检查LOG的输出。在BOOST_CHECK宏里调用了CheckDB::checkBSParamInDB来检查该被测程序的某些行为。当然boost.test库定义了很多check函数。
测试是如何进行的?
怎么搭建boost测试环境就不再描述了,目前我们BTSOM项目中是将被测模块编译成库(lib库),然后将MT代码和该lib库编译生成一个exe文件。至于被测模块的在MT中是如何初始化的?且看以下代码:
bool init(){ framework::master_test_suite().p_name.value = "CM"; if (OXF::init(0, NULL, 0, NULL, OMTimerManagerDefaults::defaultTicktime, OMTimerManagerDefaults::defaultMaxTM, true)) { OXF::start(true); } else { return false; } sw_conf_table[FEAT_DBG_Generic] = 1; sw_conf_table[FEAT_DBG_PrintFilter] = 5; sw_conf_table[FEAT_DBG_BTSOM_CDM_PRN] = 2; //sw_conf_table[FEAT_DBG_BTSOM_ALMAG] = 1; //sw_conf_table[FEAT_DBG_Rpmag] = 2; //sw_conf_table[FEAT_DBG_ADSER] = 1; //sw_conf_table[FEAT_DBG_BTSOM_APW] = 2; sw_conf_table[FEAT_DBG_DB_Change_Log] = 2; //sw_conf_table[FEAT_DBG_Enable_DbgPrint_to_BtsLog_PRN] = 1; sw_conf_table[FEAT_DBG_BTSOM_CFM_PRN] = 2; sw_conf_table[FEAT_DBG_BTSOM_RADPARAMS_PRN] = 3; //Registry::Instance(1); Registry::Instance(HWW::omGetCurrentBoard()); SSW_SupportSoftware::init(); //start DB startDB(cOMCoreDBM); DBW::DbWInitializer::init(); DBW::DbWInitializer::dbCreated(); DBManager *dbm = getDBM(); return true;}int main(int argc, char* argv[]){ return boostMT_init(argc, argv, init);}init 函数做了我们被测模块的初始化工作。
与该被测模块有联系的其它模块我们可以写一些模拟器,我们控制该模拟器的行为来辅助我们的测试,当然这些模拟器的代码需要一起包含在这个MT工程代码里。
MT用例是如何运行起来的?
LOG的check是如何实现的?
关于以上两个问题在接下来的几篇blog中会有分晓。
- 如何使用boost.test
- 使用单元测试 Boost.test
- boost.test 使用
- 如何分文件编写Boost Test的test case
- Boost.Test
- boost test
- boost test
- BOOST::bind 如何使用
- 如何使用 Boost.Func
- java 如何使用@test
- 问boost.test在DLL工程的单元测试如何启动
- 如何使用BOOST信号(一)
- 如何使用BOOST信号(二)
- 如何编译&使用boost库?
- 如何编译&使用boost库?
- 如何编译&使用boost库?
- 如何使用stl替换boost
- XCode7如何使用UI Test
- 10个经典的字符串hash函数的C代码实现
- http://www.doc88.com/p-360144094967.html
- 刷新页面js版
- 如何用Jquery获取某一个Div的Class或者ID
- 检测手机电池状态的代码
- 如何使用boost.test
- MVC的工作原理
- 内核启动过程
- android 完全退出
- 安全外壳协议 ssh
- ARM9(S3C2440) Touch Screen
- struts2接数据的三种方式
- MATLAB fread函数分析
- Linux date --date