单元测试作业指导系列讲座之一
来源:互联网 发布:淘宝客淘口令api 编辑:程序博客网 时间:2024/06/03 15:58
这是我以前任项目经理时,编写的关于单元测试方面的作业指导书,针对多种开发环境叙述怎么进行单元测试以及环境配置,现在整理了一下。应该对大家有所帮助。
这是第一部分,主要针对C和C++项目的(包括了Windows环境和Linux环境),下部分将针对Java及J2EE项目。
1. 目的
为了减少代码中的错误数量, 减少调试所花的时间和精力, 改善软件质量, 减少开发和维护的时间和成本。
2. 适用范围
适用于C及C++的所有产品。
3. 适用内容
3.1 C++标准
3.1.1测试环境使用Visual C++,Windows窗口应用程序
3.1.1.1前题:使用CppUnit1.6.2版,解压后,路径为x://cppunit-1.6.2;
在工程文件中配置测试框架使用环境:加入执行头文件的路径x://cppunit-1.6.2/include,加入导入库文件的路径x://cppunit-1.6.2/lib;
配置DEBUG(测试)版环境:
加入需要链接的静态测试框模块testrunnercd.lib(运行测试用例的选择对话框)和cppunitcd.lib(测试框架);
加入测试Add-ins,库名为x://cppunit-1.6.2/lib/TestRunnerDSPlugInD.dll;
在Project Settings/C++/C++ Language中启用RTTI;
3.1.1.2建立测试用例:
1、以类名加前辍“Test”命名测试单元文件名,比如“CMabString”类的类文件名为MabString.cpp,则测试单元文件命名为TestMabString.cpp;
2、加入测试框架头文件以及要测试的单元头文件,以TestMabString为例:
头文件:testmabstring.h
这是第一部分,主要针对C和C++项目的(包括了Windows环境和Linux环境),下部分将针对Java及J2EE项目。
1. 目的
为了减少代码中的错误数量, 减少调试所花的时间和精力, 改善软件质量, 减少开发和维护的时间和成本。
2. 适用范围
适用于C及C++的所有产品。
3. 适用内容
3.1 C++标准
3.1.1测试环境使用Visual C++,Windows窗口应用程序
3.1.1.1前题:使用CppUnit1.6.2版,解压后,路径为x://cppunit-1.6.2;
在工程文件中配置测试框架使用环境:加入执行头文件的路径x://cppunit-1.6.2/include,加入导入库文件的路径x://cppunit-1.6.2/lib;
配置DEBUG(测试)版环境:
加入需要链接的静态测试框模块testrunnercd.lib(运行测试用例的选择对话框)和cppunitcd.lib(测试框架);
加入测试Add-ins,库名为x://cppunit-1.6.2/lib/TestRunnerDSPlugInD.dll;
在Project Settings/C++/C++ Language中启用RTTI;
3.1.1.2建立测试用例:
1、以类名加前辍“Test”命名测试单元文件名,比如“CMabString”类的类文件名为MabString.cpp,则测试单元文件命名为TestMabString.cpp;
2、加入测试框架头文件以及要测试的单元头文件,以TestMabString为例:
头文件:testmabstring.h
#ifndef CPP_UNIT_TestNode_H #define CPP_UNIT_TestNode_H //包含测试框架的头文件 #include <cppunit/TestCase.h> #include <cppunit/extensions/HelperMacros.h> //包含被测试单元的头文件 #include "mabstring.h" //派生测试框架的测试用例类 class TestMabString : public CppUnit::TestCase { //定义测试用例列表,此列表将出现在运行测试用例的选择对话框中 CPPUNIT_TEST_SUITE( TestMabString ); CPPUNIT_TEST( FindByName ); CPPUNIT_TEST_SUITE_END(); protected: // CMabString m_MabStr; public: //用例初始化,可作为桩函数 void setUp (); //用例析构 void tearDown(); protected: //测试用例 void FindByName (void); }; #endif 类文件:testmabstring.cpp #include "TestMabString.h" #include "iostream.h" #include "strstrea.h" //注册本测试单元 CPPUNIT_TEST_SUITE_REGISTRATION( TestMabString ); //定义测试用例 void TestMabString::FindByName () { //功能性测试,属黑盒测试 //normal test //条件及错误测试,属白盒测试 //extra test, //例外测试,属白盒测试 //exception test, bool bRet=false; try{ //put the exception code here... } //catch(CXXX& e) catch(...) { bRet=true; } CPPUNIT_ASSERT(bRet); //由于并不能够执行所有单元测试应该执行的路径,比如CMabString是从CString //类中派生出来的,而可能CMabString中的Find只简单调用了CString中的Find方法,//所以并不需要测试; //在此处说明所有不用测试的路径; //other test, see the ... } void TestMabString::setUp () { //开始测试前的初始代码 m_pNode=new Node(); } void TestMabString::tearDown() { //测试结束代码 if(m_pNode) delete m_pNode; } |
- 单元测试作业指导系列讲座之一
- 单元测试作业指导系列讲座之一(2)
- 单元测试指导
- 单元测试指导
- 单元测试指导
- ZT:“再看OA”系列讲座之一:为OA正本清源
- DirectShow系列讲座之一——DirectShow系统概述
- DirectShow系列讲座之一——DirectShow系统概述
- DirectShow系列讲座之一——DirectShow系统概述
- DirectShow系列讲座之一——DirectShow系统概述
- Struts作业指导手册
- CVS作业指导手册
- “探索需求”系列讲座之一--需求的收敛过程
- 系列课程之一:“IPC-A-610D标准”专家认证培训讲座
- 金山卫士开源系列讲座之一:揭秘卫士如何优化系统
- Android系列学习讲座之一--为App签名(为apk签名)
- 兄弟连免费求职指导在线讲座
- 堆栈溢出系列讲座
- 硬件检测工具集锦
- 如何利用C#创建和调用DLL
- 在C#中编写多线程应用程序
- System Mechanic 是个垃圾
- 从Internet上抓取指定URL的源码的方案(C#)
- 单元测试作业指导系列讲座之一
- InStrRev 函数
- 单元测试作业指导系列讲座之一(2)
- 解读C#中的正则表达式
- 我的2001
- 学习C#的体会
- Longhorn的sidebar会有人用吗?
- ROSE建模文件如何把绝对路径修改成相对路径
- 便利的开发工具 CppUnit 快速使用指南