之前在申请GSoC的Boost库相关项目,要求我实现一个线段树类。在实现后要求我去做单元测试。一开始是一直不愿意去做这个单元测试的,因为查了一下发现资料很少,时间很紧,感觉英文文档太长,使用起来感觉有点抵触,觉得会很困难。 最后硬着头皮上了。
单元测试其实比我想象的简单,就是把我一直都在使用的人肉测试自动化了而已。 ** 单元测试是面向接口的,和面向对象的程序设计思想重合** 。
我使用的系统是Ubuntu 16.04
,首先安装 sudo apt-get install libboost-dev
(如果找不到相关的可以使用sudo apt-cache search boost
来查找关于boost的全部信息。如果找不到的话,尝试sudo apt-get update
进行更新。 一开始我以为boost库会很大,实际下载下来也就几百MB,很少。
下载完成后,我照着官方文档的tutorials做了一些简单的测试,发现使用起来很方便。
这个文档中的代码基本上上拿来就可以使用了,唯一需要注意的是要在最上面加上这一句宏#define BOOST_TEST_DYN_LINK
,这一句宏是为了开启动态链接的。** 这个宏必须必须放在最开头!** 我之前放在第二行,结果总是提示找不到main
函数,最后鬼使神差的调整了一下位置解决了这个问题。 编译命令需要加上-lboost_unit_test_framework
进行链接。 编译后运行即可。
boost.test库里还有很多更强大的东西,但是因为这次我只需要做一些简单的测试,所以并没有进一步学习。希望以后有机会可以学到如何使用大文件大数据(像模拟一个本地OJ一样)。
1 | 代码如下: |
运行结果: