温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++中怎么使用CppUnit进行单元测试

发布时间:2021-11-29 16:39:03 来源:亿速云 阅读:344 作者:iii 栏目:编程语言

这篇文章主要讲解了“C++中怎么使用CppUnit进行单元测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中怎么使用CppUnit进行单元测试”吧!

如果使用VC6,那么直接用VC6打开VC工程文件,选择Batch Build(***自己对工程参数重新设置一下),然后就可以在源代码包子目录Lib中得到我们需要的库文件。如果使用C/C++,那么用VC8打开VC6工程文件,并按提示直接转换成.net版本。

同样,选择批生成,生成我们需要的库文件。在VC8中编译源代码时会出现编译错误“#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids”,将version("7.0")改为version("8.0")即可。

在开发应用程序过程中,我们可能会使用到很多第三方程序库,如这里的CppUnit。为了方便,我们可以建立一个第三方程序库的专用文件夹,并为具体的程序库(如这里的CppUnit)建立子文件夹。然后在VC的Option中分别设置库的头文件路径和库文件连接路径。

如果有Dll文件,则在系统变量PATH中加进DLL文件所在目录,这样,程序运行时就能搜索到该C/C++(注意,只有VC重启后,PATH设置才会对从VC里直接运行的程序生效)。

同样,这里我们也把CppUnit的头文件和库文件路径加到VC的默认搜索路径中。另外,需要指出,一般情况下,Dll文件是需要与生成的程序一同发布的,此时就必须将Dll文件拷贝到Project目录中。此时,可以采取手动方式,也可以在Project的Post-Build Step中添加命令执行拷贝动作。

在VC中使用CppUnit进行单元测试时,可以选择CppUnit的控制台测试作界面和图形测试界面。控制台界面简洁,而图形界面较直观,并且借助CppUnit提供的插件可以快速定位到断言失败的地方。一般情况下。

我们使用控制台测试界面来测试Console程序,使用图形测试界面来测试GUI程序,这样测试Project不会影响被测试的Project。由于图形测试界面的易用性,我们可能也希望用它来测试Console程序,此时稍微麻烦一点。下面分别介绍这几种用法(以VC6为例,VC8类似)。

在下面的叙述中,把被测试Project叫做目标Project,把被测试类叫做目标类。使用CppUnit的Console测试界面测试Console程序
1. 创建一个工作区用于开发和测试,然后在该工作区中分别创建两个Project,一个用于开发,另一个用于测试。

2. 在测试Project中,设置如下:
(1)设置连接库:cppunit.lib(Release版)和cppunitd.lib(Debug版),或者使用动态链接库版本cppunit_dll.lib、cppunit_dll.dll和cppunitd_dll.lib、cppunitd_dll.dll;
(2)在C/C++Code Generation中设置Use run-time library为Multithreaded Dll(Release版)和Debug Multithreaded Dll(Debug版)。

3. 为测试Project添加测试类,假如被测试的目标类为Demo,那么可以定义一个DemoTest的测试类:

class DemoTest: public CppUnit::TestFixture  {      CPPUNIT_TEST_SUITE(DemoTest);  // 参数为本测试类名      CPPUNIT_TEST(testFunc);        // 参数为测试函数名,与下面声明的测试函数对应      CPPUNIT_TEST_SUITE_END();        public:      void setUp() {          // 在这里进行测试的初始化工作      }            void tearDown() {          // 在这里进行测试完毕后的清理工作      }            void testFunc();  // 测试函数,用来测试目标类的某一个细节  };     #endif // DEMO_TEST_H     文件DemoTest.cpp:  #include "DemoTest.h"  #include "../Demo/DemoTest.h"  // 这里为要测试的目标类的头文件路径,因为测试时要用到Demo类  #include <cppunit/extensions/HelperMacros.h>    CPPUNIT_TEST_SUITE_REGISTRATION(DemoTest);     void DemoTest::testFunc()  {      // 这里对Demo类进行测试,可以使用CPPUNIT_ASSERT、CPPUNIT_ASSERT_EQUAL等来断言  }

感谢各位的阅读,以上就是“C++中怎么使用CppUnit进行单元测试”的内容了,经过本文的学习后,相信大家对C++中怎么使用CppUnit进行单元测试这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI