学习CppUnit测试框架

     上次学完VS2005的测试框架后,想应用一下。找了《Essential C++》第4章的Stack例子,可是却发现编译的时候有一堆的错误。

好像和待测文件的#include有关吧,因为注释掉这些#include就没有类似的错误提示了。

但这时源代码就不能正确运行。

一方面上网求助,另一方面觉得VS2005的测试框架应用在C#上可能会好些,在C++上就未必好了。

于是想起了久闻大名的CppUnit,这款专用于C++的测试框架。

在网上搜到了几篇入门的文章,看得比较仔细的有

《 CppUnit测试框架入门》

http://blog.csdn.net/cpluser/archive/2004/09/21/111522.aspx

《在VS2005下搭建和使用CppUnit》 

http://blog.csdn.net/dk123/archive/2008/07/18/2673336.aspx

《在 VS2005 下使用 CppUnit 的准备工作》

http://hi.baidu.com/jackyu2007/blog/item/c808f11e21e0fcf71ad576ae.html

 

略读的文章有

《便利的开发工具 CppUnit 快速使用指南》

http://www.ibm.com/developerworks/cn/linux/l-cppunit/

《CppUnit快速入门》

http://blog.csdn.net/freefalcon/archive/2006/05/25/753819.aspx

《附录(Appendix)——WIN32平台安装说明》

http://morningspace.51.net/resource/cppunit/appendix.html#91

《CppUnit Cookbook》

http://cppunit.sourceforge.net/doc/lastest/cppunit_cookbook.html

《如何使用CppUnit进行单元测试》

http://www.vckbase.com/document/viewdoc/?id=1762

这篇文章是根据《CppUnit测试框架入门》和《CppUnit快速入门》整理成的。

 

总结起来,CppUnit的使用过程有:

1、建立测试用例;

2、注册测试用例到Test Suite;

3、把Test Suite生成测试列表;

4、用TestRunner导入测试列表并运行。

 

这个过程确实比较繁复,每个测试用例需要先定义,再实现,还得分别注册到Test Suite中。

至今我还没有成功的自己做过一个CppUnit的测试。

CppUnit还不如VS2005的测试框架好用。

在郁闷痛苦之余,看到了大家对CppUnit的评价,比如这篇文章

《C++测试框架的选择》

http://www.cppblog.com/jinq0123/archive/2010/04/13/112430.html

在工作量这一项,CppUnit的工作量是最大的。

 

我对测试框架的理想,是希望简单,这样自己就可以专注于测试用例的开发了。

 

在网上还看见不少人推荐Google的测试框架,对比CppUnit,确实简单很多。

例如这篇文章

《推荐一个C++单元测试框架——Google Test》

http://hi.baidu.com/chendeping/blog/item/9a029efa7198a1d6b48f3182.html

这里的CppUnit例子是我见到的最简单的例子。

我自己在2月9日的博文里也说:“据说Google Test比CppUnit好用些,我正在看Google Test。”

天!兜兜转转,还是回到了Google Test。

而且听说GTest还可以配合Google Mock一起工作,更好用。

《轻松编写 C++ 单元测试》

http://www.ibm.com/developerworks/cn/linux/l-cn-cppunittest/index.html

 

不再找其他的测试框架了,还是先研究一下Google Test吧,用上了再说。

VS2005的测试框架我也喜欢,有空也研究一下。

从GTest到VS2005 Test再到CppUnit还是回到GTest,这一过程也并不是多余的。在这一过程中我了解到了更多的单元测试知识,看见了更多的例子,开阔了眼界。

一句话,学无止境。

 

另外,觉得单元测试这些东西,网上资源还是少。

大概是做这个的人少,做单元测试的人似乎也比较忙,没空做传道授业。单元测试的路还是要自己走。

更郁闷的是国外的网页上不去,尤其是Google的网页。


原文:http://blog.csdn.net/dijchen/article/details/5706256

你可能感兴趣的:(学习CppUnit测试框架)