单元测试指导
作者:管理员 发布时间:[ 2010/2/20 15:40:48 ] 推荐标签:
本文关于单元测试方面的作业指导书,针对多种开发环境叙述怎么进行单元测试以及环境配置,目的是为了减少代码中的错误数量, 减少调试所花的时间和精力, 改善软件质量, 减少开发和维护的时间和成本。
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.2include,加入导入库文件的路径x:cppunit-1.6.2lib;
配置DEBUG(测试)版环境:
加入需要链接的静态测试框模块testrunnercd.lib(运行测试用例的选择对话框)和cppunitcd.lib(测试框架);
加入测试Add-ins,库名为x:cppunit-1.6.2libTestRunnerDSPlugInD.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;
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11