[vs2010 配置与实例] CppUnit快速入门
vs2010c课程设计

vs2010 c 课程设计一、教学目标本课程的教学目标是使学生掌握VS2010 C语言的基本语法、数据结构、算法和编程技巧,培养学生运用C语言进行程序设计和解决问题的能力。
具体分解为以下三个层面:1.知识目标:学生需要了解和掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针、结构体等知识。
2.技能目标:学生能够熟练使用VS2010集成开发环境进行C语言编程,具备良好的编程习惯和代码调试能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,激发学生主动学习和探索的精神,培养学生的团队合作意识和解决问题的能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基础知识:数据类型、变量、常量、运算符、输入输出等。
2.控制结构:顺序结构、分支结构、循环结构等。
3.函数:函数的定义和声明、返回值、局部变量、全局变量、递归等。
4.数组和指针:一维数组、多维数组、指针的概念和运算、指针与数组的关系、指针与函数的关系等。
5.结构体和文件:结构体的定义和使用、文件的打开、读写、关闭等操作。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:教师通过讲解和示范,引导学生掌握C语言的基本概念和编程方法。
2.案例分析法:教师通过分析典型案例,让学生了解和掌握C语言在实际编程中的应用。
3.实验法:学生通过上机实验,动手编写代码,巩固所学知识,培养实际编程能力。
4.小组讨论法:学生分组进行讨论,共同解决问题,培养团队合作意识和沟通能力。
四、教学资源为了支持本课程的教学,我们将提供以下教学资源:1.教材:《VS2010 C语言程序设计教程》。
2.参考书:《C程序设计语言》、《C Primer Plus》等。
3.多媒体资料:教学PPT、视频教程、在线编程练习等。
4.实验设备:计算机、网络环境、编程软件(如VS2010)等。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:教师通过观察学生的课堂表现、参与度、提问回答等情况,评估学生的学习态度和积极性。
VS2010MFC编程入门之一(VS2010与MSDN安装过程图解)

上一讲中鸡啄米对VC++和MFC做了一些简单介绍。
在本套教程中鸡啄米将使用VS2010为大家讲解如何使用VC++和MFC进行编程,所以首先要安装VS2010。
一.下载VS2010首先我们需要下载VS2010,大家可以在网上下载VS2010破解正式版,建议选择英文版,养成使用英文工具的习惯。
鸡啄米使用VS2010旗舰试用版VS2010UltimTrial.iso为例介绍安装过程,旗舰试用版官方下载地址为:/download/en/detai ls.aspx?displaylang=en&id=12187。
正式版的安装过程与试用版类似。
二.安装VS2010下载后进行安装。
安装方法与一般的iso文件一样,可以使用虚拟光驱软件Daemon Tools安装,也可以将其解压后点击setup.exe进行安装。
鸡啄米为了让大家更直观的看到安装过程,我将在自己机子上再重新安装一次,并截图为大家讲解。
这里使用Daemon Tools安装VS2010。
首先打开Daemon Tools,屏幕右下角会出现托盘图标,在图标上点右键,会弹出菜单,再把鼠标移到菜单项“虚拟设备”上,然后再移到子菜单项“设备0:[L:] 无媒体”上,最后点击下一级子菜单项“装载映像”,弹出对话框选择VS2010UltimTrial.iso文件。
这样虚拟光驱就会打开此iso文件,弹出自动安装的提示,选择“运行autorun.exe”就可以了,如果没有弹出提示就通过资源管理器进入虚拟光驱,用setup.exe安装。
接着会弹出下面的对话框:当然选择“Install Microsoft Visual Studio 2010”进入下一步,加载安装组件后如下显示:点“Next”后:选择“I have read and accept the license terms”后点“Next”弹出对话框:此处是让我们选择要安装的功能,有两种:Full(完全)和Custom(自定义)。
VS2010入门

或者使用监视功能
这里填入你要跟踪 的变量名,右侧自 动显示值
编程环境的设置
对编程环境的设置
VS2010调试入门指南
/zhangchenliang/p/3739115.html
VS2010入门简介
贾金芳 青海大学计算机系
创建项目
选择项目类型
பைடு நூலகம் 项目命名
工程名:起有意义 的名字
工程路径:选合适 的文件夹
Main函数中的代码 在return之前写即 可
简单程序
注意头文件和命名 空间的引入
编译与调试
跟踪变量
找到变量的下一语句
跟踪变量
点击启动调试
跟踪变量
程序执行到断点出停止,鼠标移动到变量上 可以显示其值
visual c++ 2010入门教程

在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C ++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。
因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++的区别是什么。
现在有很多的朋友应该也有这些问题吧?学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。
记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。
接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。
刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。
内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。
由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。
注意,本教程非C++教程,不会教你C++,只会教你如何使用Visual C++ 2010去练习去学习其它C++教材上面的程序。
因此建议大家认真的去看其他的C++教程,在使用Visual C++ 2010实践的时候如果遇到问题可以到这里来参考。
推荐《C++ Prim er》、《C++程序设计语言》《Visual C++ 2008入门经典》。
第一章关于Visual Studio、VC和C++的那些事第二章安装、配置和首次使用VS2010本章将帮助大家安装Visual C++ 2010,帮助大家做一些常见的配置,以及第一次使用它来写HelloWord程序。
vs2010 解决方案配置

vs2010 解决方案配置
《使用VS2010解决方案配置进行快速开发》
Visual Studio 2010是微软推出的一款集成开发环境,为开发人员提供了丰富的工具和功能。
在使用VS2010进行软件开发时,解决方案配置是非常重要的一环。
通过正确的配置,开发人员可以更快速地搭建项目结构,调试代码并进行部署。
首先,通过解决方案资源管理器可以创建、添加、删除项目和解决方案的组织结构。
在解决方案资源管理器中,开发人员可以方便地对项目进行管理,包括设置编译属性、引用引用项、以及调整项目的层次结构。
其次,解决方案配置可以用于设置编译时的参数和选项。
在项目属性中,开发人员可以设置编译器参数、链接器参数、预处理器参数等,以便在编译时对代码进行优化、调试和部署。
另外,在解决方案配置中也可以对调试器进行配置。
开发人员可以设置断点、查看变量、监视表达式等,来帮助调试和排错。
此外,还可以设置远程调试、内存管理选项等高级调试功能。
最后,解决方案配置还可以用于发布项目。
通过发布管理器,开发人员可以创建发布文件、设置发布路径、以及对发布项目进行各种属性设置,以实现项目的快速部署。
总的来说,通过合理的解决方案配置,开发人员可以更快速地搭建项目结构、调试代码和部署项目。
VS2010提供了丰富的
解决方案配置选项,使开发人员能够更加高效地进行软件开发工作。
vs2010操作教程

在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。
因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++的区别是什么。
现在有很多的朋友应该也有这些问题吧?学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。
记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。
接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。
刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。
内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。
由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。
注意,本教程非C++教程,不会教你C++,只会教你如何使用 Visual C++ 2010去练习去学习其它C++教材上面的程序。
因此建议大家认真的去看其他的C++教程,在使用Visual C++ 2010实践的时候如果遇到问题可以到这里来参考。
推荐《C++ Primer》、《C++程序设计语言》《Visual C++ 2008入门经典》。
第一章关于Visual Studio、VC和C++的那些事第二章安装、配置和首次使用VS2010本章将帮助大家安装Visual C++ 2010,帮助大家做一些常见的配置,以及第一次使用它来写HelloWord程序。
VS2010之MFC入门到精通教程

VS2010/MFC编程入门教程之目录第一部分:VS2010/MFC开发环境VS2010/MFC编程入门之前言VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解)第二部分:VS2010/MFC应用程序框架VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)VS2010/MFC编程入门之四(MFC应用程序框架分析)VS2010/MFC编程入门之五(MFC消息映射机制概述)第三部分:对话框VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)VS2010/MFC编程入门之七(对话框:为对话框添加控件)VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)VS2010/MFC编程入门之九(对话框:为控件添加消息处理函数)VS2010/MFC编程入门之十(对话框:设置对话框控件的T ab顺序)VS2010/MFC编程入门之十一(对话框:模态对话框及其弹出过程)VS2010/MFC编程入门之十二(对话框:非模态对话框的创建及显示)VS2010/MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)VS2010/MFC编程入门之十四(对话框:向导对话框的创建及显示)VS2010/MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)VS2010/MFC编程入门之十六(对话框:消息对话框)VS2010/MFC编程入门之十七(对话框:文件对话框)VS2010/MFC编程入门之十八(对话框:字体对话框)VS2010/MFC编程入门之十九(对话框:颜色对话框)第四部分:常用控件VS2010/MFC编程入门之二十(常用控件:静态文本框)VS2010/MFC编程入门之二十一(常用控件:编辑框Edit Control)VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox)VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box)VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control)VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上)VS2010/MFC编程入门之三十一(常用控件:树形控件Tree Control 下)VS2010/MFC编程入门之三十二(常用控件:标签控件Tab Control 上)VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下)第五部分:菜单、工具栏与状态栏VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用)VS2010/MFC编程入门之三十六(工具栏:工具栏资源及CToolBar类)VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用)VS2010/MFC编程入门之三十八(状态栏的使用详解)第六部分:文档、视图和框架VS2010/MFC编程入门之三十九(文档、视图和框架:概述)VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系)VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口)第七部分:MFC常用类VS2010/MFC编程入门之四十二(MFC常用类:CString类)VS2010/MFC编程入门之四十三(MFC常用类:CTime类和CTimeSpan类)VS2010/MFC编程入门之四十四(MFC常用类:定时器Timer)VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类)VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理)第八部分:字体和文本输出VS2010/MFC编程入门之四十七(字体和文本输出:CFont字体类)VS2010/MFC编程入门之四十八(字体和文本输出:文本输出)第九部分:图形图像VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数)VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush)第十部分:Ribbon界面开发VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架)VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件)VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)VS2010/MFC编程入门之前言鸡啄米的C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。
VS2010和MFC编程入门之3(VS2010应用程序工程中文件的组成结构)

VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)这里将以前面的生成应用程序HelloWorld的文件结构为例,讲解VS2010应用程序工程中文件的组成结构。
用应用程序向导生成框架程序后,我们可以在之前设置的Location下看到以解决方案名命名的文件夹,此文件夹中包含了几个文件和一个以工程名命名的子文件夹,这个子文件夹中又包含了若干个文件和一个res文件夹,创建工程时的选项不同,工程文件夹下的文件可能也会有所不同。
如果已经以Debug方式编译链接过程序,则会在解决方案文件夹下和工程子文件夹下各有一个名为“Debug”的文件夹,而如果是Release方式编译则会有名为“Release”的文件夹。
这两种编译方式将产生两种不同版本的可执行程序:Debug版本和Release 版本。
Debug版本的可执行文件中包含了用于调试的信息和代码,而Release版本则没有调试信息,不能进行调试,但可执行文件比较小。
将所有文件分为6个部分:解决方案相关文件、工程相关文件、应用程序头文件和源文件、资源文件、预编译头文件和编译链接生成文件。
1.解决方案相关文件解决方案相关文件包括解决方案文件夹下的.sdf文件、.sln文件、.suo文件和ipch文件夹。
.sdf文件和ipch目录一般占用空间比较大,几十兆甚至上百兆,与智能提示、错误提示、代码恢复和团队本地仓库等相关。
如果你觉得不需要则可以设置不生成它们,方法是点击菜单栏Tools->Options,弹出Options对话框,选择左侧面板中Text Editor->C/C++->Advanced,右侧列表中第一项Disable Database由False改为True就可以了,最后关闭VS2010再删除.sdf文件和ipch目录以后就不会再产生了。
但关闭此选项以后也会有很多不便,例如写程序时的智能提示没有了。
.sln文件和.suo文件为MFC自动生成的解决方案文件,它包含当前解决方案中的工程信息,存储解决方案的设置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简介测试是软件开发过程中极其重要的一环,详尽周密的测试能够减少软件BUG,提高软件品质。
测试包括单元测试、系统测试等。
其中单元测试是指针对软件功能单元所作的测试,这里的功能单元可以是一个类的属性或者方法,测试的目的是看这些基本单元是否工作正常。
由于单元测试的内容很基础,因此可以看作是测试工作的第一环,该项工作一般由开发人员自行完成。
如果条件允许,单元测试代码的开发应与程序代码的开发同步进行。
虽然不同程序的单元测试代码不尽相同,但测试代码的框架却非常相似,于是便出现了一些单元测试类库,CppUnit便是其中之一。
CppUnit是XUnit中的一员,XUnit是一个大家族,还包括JUnit和PythonUnit等。
CppUnit简单实用,学习和使用起来都很方便,网上已有一些文章对其作介绍,但本文更着重于讲解其中的基本概念和使用方法,以帮助初次接触CppUnit的人员快速入门。
安装1、先下个最新版cppunit-1.12.1.tar.gz解压缩,进入cppunit-1.12.1\src目录,就是源代码所在,打开CppUnitLibraries.dsw工程,是用vc6.0写的,用vs2010打开转换到CppUnitLibraries.sln ok,2、然后依次运行CppUnitLibraries.dsw工程下的每个项目,这样做的目的是为了方面发现问题和找到正确的解决方法。
下面是我在运行相应项目时所提示的错误以及解决办法1)运行项目Cppunit解决办法:选择Cppunit右键属性->(debug)配置属性->常规->目标文件名:$(ProjectName)修改成cppunit d(这样做是为保持链接器->常规->目标文件名一致);2)运行项目cppunit_dll解决办法:选择Cppunit右键属性->(debug)配置属性->常规->目标文件名:$(ProjectName)修改成cppunit d_dll (这样做是为保持库管理器->常规->目标文件名一致);3)到这里这里会发现其实每个项目的错误基本上都是TargeName(xxx)与Linker的OutputFile属性值不匹配;依次修改项目DllPlugInTester、DSPlugIn、TestPlugInRunner、TestRunner的Debug配置属性(每个后面都记得加个”d”,而且库管理器中为:目标文件名.xx,xx不需要修改,但库管理器中的目标文件名可能要修改,改成与:常规---目标文件名一致!)4)当然当修改完DSPlugIn的Debug配置属性后再运行我们发现我们仔细观察到底新的错误是什么呢?这里修改方式就是最上面的红色字中提到的修改TestRunner下UserInterface\DynamicWindow\MsDevCallerListCtrl.cpp文件第67行,改成:#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0")raw_interfaces_onlynamed_guids5)再次运行DSPlugIn项目我们会发现依然有错误解决方法:选择项目->属性->配置属性->链接器->高级->无入口点选择"是(/NOENTRY)"6)最后为了生成全面的库文件我需要分别在Debug、release、Debug unicode、releaseunicode四种配置属性中生成全部解决方案。
(运行过程中会遇到错误基本上都可以从上文中找到解决方法)7)编译完成后,提示成功6 失败0 即安装完毕详细说明:解压后,你可以看到CppUnit包含如下目录:config:配置文件contrib: contribution,其他人贡献的外围代码doc:文档,需要通过doxygen工具生成,也可以直接从sourceforge站点上下载打包好的文档examples:示例代码include:头文件lib:存放编译好的库src:源文件,以及编译库的工程等然后打开src目录下的CppUnitLibraries工程,执行build/batch build,编译成功的话,生成的库文件将被拷贝到lib目录下。
你也可以根据需要选择所需的项目进行编译,其中项目cppunit为静态库,cppunit_dll为动态库,生成的库文件为:cppunit.lib:静态库release版cppunitd.lib:静态库debug版cppunit_dll.lib:动态库release版cppunitd_dll.lib:动态库debug版要使用CppUnit,还得设置好头文件和库文件路径,以VC6为例,选择Tools/Options/Directories,在Include files和Library files中分别添加%CppUnitPath%/include和%CppUnitPath%/lib,其中%CppUnitPath%表示CppUnit所在路径。
做好准备工作后,我们就可以编写自己的单元测试代码了。
需说明的是,CppUnit所用的动态运行期库均为多线程动态库,因此你的单元测试程序也得使用相应设置,否则会发生冲突。
概念在使用之前,我们有必要认识一下CppUnit中的主要类,当然你也可以先看后面的例子,遇到问题再回过头来看这一节。
CppUnit核心内容主要包括六个方面,1. 测试对象(Test,TestFixture,...):用于开发测试用例,以及对测试用例进行组织管理。
2. 测试结果(TestResult):处理测试用例执行结果。
TestResult与下面的TestListener采用的是观察者模式(Observer Pattern)。
3. 测试结果监听者(TestListener):TestListener作为TestResult的观察者,担任实际的结果处理角色。
4. 结果输出(Outputter):将结果进行输出,可以制定不同的输出格式。
5. 对象工厂(TestFactory):用于创建测试对象,对测试用例进行自动化管理。
6. 测试执行体(TestRunner):用于运行一个测试。
以上各模块的主要类继承结构如下:Test TestFixtureTestResultTestListener_______|_________ | | | | |TestSuccessListenerTestCompositeTestLeaf | || |____________|TestResultCollectorTestSuit |TestCase|TestCaller<Fixture>OutputterTestFactoryTestRunner____________________|_________________ || | |TestFactoryRegistryCompilerOutputterTextOutputterXmlOutputter |TestSuiteFactory<TestCaseType>接下来再对其中一些关键类作以介绍。
Test:所有测试对象的基类。
CppUnit采用树形结构来组织管理测试对象(类似于目录树),因此这里采用了组合设计模式(Composite Pattern),Test的两个直接子类TestLeaf和TestComposite分别表示“测试树”中的叶节点和非叶节点,其中TestComposite主要起组织管理的作用,就像目录树中的文件夹,而TestLeaf才是最终具有执行能力的测试对象,就像目录树中的文件。
Test最重要的一个公共接口为:virtual void run(TestResult *result) = 0;其作用为执行测试对象,将结果提交给result。
在实际应用中,我们一般不会直接使用Test、TestComposite以及TestLeaf,除非我们要重新定制某些机制。
TestFixture:用于维护一组测试用例的上下文环境。
在实际应用中,我们经常会开发一组测试用例来对某个类的接口加以测试,而这些测试用例很可能具有相同的初始化和清理代码。
为此,CppUnit引入TestFixture来实现这一机制。
TestFixture具有以下两个接口,分别用于处理测试环境的初始化与清理工作:virtual void setUp(); //初始化virtual void tearDown(); //清理TestCase:测试用例,从名字上就可以看出来,它便是单元测试的执行对象。
TestCase从Test和TestFixture多继承而来,通过把Test::run制定成模板函数(Template Method)而将两个父类的操作融合在一起,run函数的伪定义如下:// 伪代码void TestCase::run(TestResult* result){result->startTest(this); // 通知result测试开始if( result->protect(this, &TestCase::setUp) ) // 调用setUp,初始化环境result->protect(this, &TestCase::runTest); // 执行runTest,即真正的测试代码result->protect(this, &TestCase::tearDown); // 调用tearDown,清理环境result->endTest(this); // 通知result测试结束}这里要提到的是函数runTest,它是TestCase定义的一个接口,原型如下:virtual void runTest();用户需从TestCase派生出子类并实现runTest以开发自己所需的测试用例。
另外还要提到的就是TestResult的protect方法,其作用是对执行函数(实际上是函数对象)的错误信息(包括断言和异常等)进行捕获,从而实现对测试结果的统计。
TestSuit:测试包,按照树形结构管理测试用例TestSuit是TestComposite的一个实现,它采用vector来管理子测试对象(Test),从而形成递归的树形结构。
TestCaller:TestCase适配器(Adapter),它将成员函数转换成测试用例虽然我们可以从TestCase派生自己的测试类,但从TestCase类的定义可以看出,它只能支持一个测试用例,这对于测试代码的组织和维护很不方便,尤其是那些有共同上下文环境的一组测试。