在vs2005如何使用cppunit
来源:互联网 发布:淘宝上比较好的甜品店 编辑:程序博客网 时间:2024/04/27 17:19
在vs2005如何使用cppunit
1. 编译cppunit
目前在vs2005下直接编译cppunit工程是编译不过去的。还要对cppunit工程做一下适当的改动才能成功编译。
虽然网上有些文章介绍使用CPPUnitProjectWizard。但是我查阅了相关资料:发现其实不用安装这个CPPUnitProjectWizard。也可以在vs2005下成功编译和链接Cppunit。
首先,在对CppUnitLibraries解决方案做编译之前,需要在硬盘的cppuint目录下新建一个与src文件夹同级的lib文件夹。在
其次:在编译TestRunner这个工程之前,需要先对MsDevCallerListCtrl.cpp文件做一下更改。将
#import "libid:80cc
改为
#import "libid:80cc
这样将会从"%common_files%/MicrosoftShared/MSEnv/dte
最后,将DSPlugIn这个工程从解决方案里删掉,因为它只支持vc6.0。做过这些处理后vs2005就应该可以成功编译cppunit。
2. vs2005下的环境配置
开发环境中,在vs2005的工具菜单下选项->项目和解决方案- > vc++目录设置好Include 和Lib引用路径。例如:在包含文件选项下加入C:/cppunit/lib 。在库文件选项下加C:/cppunit/include 。另外最好在计算机的系统环境变量下将lib路径添加到path变量下,这样就不用把dll拷来拷去。
3. 一个基于GUI的界面测试程序的例子
首先建一个基于扩展mfc的动态库工程DemoDll。
再新建一个CDemo类(被测试类)
头文件
#pragma once
class AFX_EXT_CLASS CDemo
{
public:
CDemo(void);
virtual ~CDemo(void);
int Add(int i);
int Subtration(int i);
public:
int m_iOper;
};
cpp文件
#include "StdAfx.h"
#include "Demo.h"
CDemo::CDemo(void)
{
m_iOper = 0;
}
CDemo::~CDemo(void)
{
}
int CDemo::Add(int i)
{
return m_iOper += i;
}
int CDemo::Subtration(int i)
{
return m_iOper -= i;
}
在同个一解决方案下新建一个测试工程用于测试这个Demo类
新建一个基于Dialog的工程DemoMfcUnitTest。在项目属性里 链接器->输入->附加依赖项下输入cppunitd_dll.lib 、testrunnerd.lib (DEBUG)或cppunit_dll.lib 、testrunner.lib (Release) 并需要将被测试类的头文件路径添加到项目属性里c/c++->附加包含目录里。例如:../ DemoDll。同时在项目依赖项中把Demodll设为依赖项。另外,要注意保证这两个工程的输出目录相同。
在App类中 添加下列头文件
#include "cppunit/extensions/TestFactoryRegistry.h"
#include "cppunit/ui/mfc/TestRunner.h"
#include "TDemoMfc_CDemo.h" // 测试用例类头文件
并在IninInstance()函数中把显示对话框的代码注销掉并在原地曾加下列代码用以显示测试界面。
CppUnit::MfcUi::TestRunner runner;
CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry(CTDemoMfc_CDemo::RegCaseName());
runner.addTest(registry.makeTest());
runner.run();
return true;
之后构建一个测试用例类。
头文件:
#pragma once
#include "cppunit/TestCase.h"
#include "CppUnit/extensions/HelperMacros.h"
#include <string.h>
#include "Demo.h" // 被测试类
class CTDemoMfc_CDemo : public CppUnit::TestCase
{
// 宏定义
CPPUNIT_TEST_SUITE(CTDemoMfc_CDemo); // 开始声明一个新的测试程序集
CPPUNIT_TEST(TestAdd); // 添加TestAdd测试函数到测试程序集
CPPUNIT_TEST(TestSubtration); // 添加TestSubtration测试函数到测试程序集
CPPUNIT_TEST_SUITE_END(); // 声明结束
public:
CTDemoMfc_CDemo(void);
void TestAdd();
void TestSubtration();
static std::string RegCaseName() { return "CTDemoMfc_CDemo";}
public:
~CTDemoMfc_CDemo(void);
};
Cpp文件
#include "StdAfx.h"
#include "TDemoMfc_CDemo.h"
#include "cppunit/extensions/TestFactoryRegistry.h"
#include "cppunit/TestAssert.h"
// 对指定程序集进行注册
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(CTDemoMfc_CDemo,CTDemoMfc_CDemo::RegCaseName());
CTDemoMfc_CDemo::CTDemoMfc_CDemo(void)
{
}
CTDemoMfc_CDemo::~CTDemoMfc_CDemo(void)
{
}
void CTDemoMfc_CDemo::TestAdd()
{
CDemo cDemo;
int iResult = cDemo.Add(10);
// 宏判断两个值是否相等
CPPUNIT_ASSERT_EQUAL(iResult,10);
}
void CTDemoMfc_CDemo::TestSubtration()
{
CDemo cDemo;
int iResult = cDemo.Subtration(10);
// 宏判断两个值是否相等
CPPUNIT_ASSERT_EQUAL(iResult,-10);
}
最后编译并运行这个工程就会看到CppUnit的GUI测试界面。
关于Cppunit详细的介绍,可以访问http://morningspace.51.net/resource/cppunit/cppunit_anno.html。这上面对cppunit的描述即全面又详细。
- 在vs2005如何使用cppunit
- 在vs2005如何使用cppunit
- 在vs2005如何使用cppunit
- 在VS2005下搭建和使用CppUnit
- 在VS2005下搭建和使用CppUnit
- 在 VS2005 下使用 CppUnit 的准备工作
- 在VS2005下搭建和使用CppUnit
- cppunit vs2005 使用
- CppUnit在VS2005中环境搭建
- 如何使用CppUnit进行单元测试
- 如何使用CppUnit进行单元测试
- 如何使用CppUnit进行单元测试
- 如何使用CppUnit进行单元测试
- 如何使用CppUnit进行单元测试
- 如何使用CppUnit进行单元测试
- 如何使用CppUnit进行单元测试
- 如何使用CppUnit进行单元测试
- 如何在vs2005里面使用Ajax
- SQL Server 知识点!
- h3
- 操作系统(八)
- IIS的HTTPERR错误日志解决
- psp编程指南2
- 在vs2005如何使用cppunit
- 如何使用Connection对象连接数据库
- Socket编程原理
- PSP开发指南第3课
- 如何用 Win32 APIs 枚举应用程序窗口和进程
- [资源数据]民族代码
- 软件史上最伟大的十大程序员
- AjaxPro与服务器端的交互及其传值
- hibernate用hbm2java给pojo增加serialVersionUID