当前位置: 首页 > news >正文

淄博建站哪家好承德网站制作的流程

淄博建站哪家好,承德网站制作的流程,南昌 提供网站设计 公司,seo推广哪家好1.QTS单元测试框架介绍 目前QTS项目采用C/C语言,而CppUnit就是xUnit家族中的一员,它是一个专门面向C的单元测试框架。因此,QTS采用CppUnit测试框架是比较理想的选择。 CppUnit按照层次来管理测试,最底层的就是TestCase,当有了几个TestCase以后#xff0c;可以将它们组织成Te…1.QTS单元测试框架介绍 目前QTS项目采用C/C语言,而CppUnit就是xUnit家族中的一员,它是一个专门面向C的单元测试框架。因此,QTS采用CppUnit测试框架是比较理想的选择。 CppUnit按照层次来管理测试,最底层的就是TestCase,当有了几个TestCase以后可以将它们组织成TestFixture。在TestFixture中,可以建立被测试的类的实例,并编写TestCase对类实例进行测试,多个TestFixture可以通过TestSuite来对测试进行管理。 通过派生TestFixture类来设计某个类或某组相关功能的单元测试,Fixture定义公共函数setUp()初始化每个成员变量,tearDown()来释放setUp中使用的资源。在每个测试中,CPPUNIT_ASSERT(bool)来判断某个函数和表达式的正确性,在派生类的声明中,通过CPPUNIT_TEST来增加对应的测试函数,通过CPPUNIT_TEST_SUITE和CPPUNIT_TEST_SUITE_END来分装所有的测试函数,规定这些测试函数执行的顺序。 2.QTS单元测试框架搭建 2.1CppUnit 介绍 A、CppUnit源代码组成 CppUnit测试框架的源代码可以到 http://sourceforge.net/projects/cppunit/ 上下载。下载解压后你将看到如下文件夹 主要的文件夹有 · doc: CppUnit的说明文档。另外代码的根目录还有三个说明文档分别是INSTALLINSTALL-unixINSTALL-WIN32.txt。 · examples: CpppUnit提供的例子也是对CppUnit自身的测试通过它可以学习如何使用CppUnit测试框架进行开发。 · include: CppUnit头文件。 · src: CppUnit源代码目录。 B、初识CppUnit测试环境 解压源代码包后 CppUnit结构如下: 1、进入example文件夹用VC打开examples.dsw。我们先来看看CppUnit自带的测试例子。这些例子都是针对CppUnit自身的单元测试集一方面这是CppUnit作者开发CppUnit框架过程中写的测试用例另一方面我们可以通过这些例子来学习如何在我们自己的工程中添加测试用例。     2、将CppUnitTestApp工程设为Active ProjectWin32 Debug编译后运行则可以看到CppUnit的基于GUI方式进行单元测试TestRunner的界面。点击“Run”将会看到如图二所示界面 这是一个针对CppUnit的单元测试结果它表明刚才我们做了11个测试全部通过。 点击“Browse”,我们还可以选择想要进行的单元测试如图三 2.2 CppUnit单元测试环境搭建 第一步:编译CppUnit 静态库文件*.lib和动态库文件*.dll: CppUnit的lib和dll CppUnit为我们提供了两套框架库一个为静态的lib一个为动态的dll。 cppunit project静态lib cppunit_dll project动态dll和lib 在开发中我们可以根据实际情况作出选择。进入src文件夹打开CppUnitLibraries.dsw。分别编译这两个project输出位置均为lib文件夹。 在开发中我们可以根据实际情况作出选择。进入src文件夹打开CppUnitLibraries.dsw。在菜单上选择Build-Batch Build..-Rebuild All输出位置均为lib文件夹。 为了方便开发我们把这些编译出来的lib和dll拷贝到我们自己建立的一个文件夹中(当然你也可以不这么做)例如F:\Mytest\lib\同时我们也把CppUnit源代码中include文件夹copy到我们自己的include文件夹下。    第二步:建立基于对话框的工程 打开VC在File菜单项下选择New建立基于dialog的工程。工程名Project name、存放位置Location可以自己决定其他选项如下 按OK确认后进入如下界面。选择Dialog based选项按Finish按钮后一个空的基于对话框的工程就建立起来了。 第三步:屏蔽工程对话框 在工程CouterTest.cpp文件中本指南中为该文件名实际学习时根据自己的工程文件名而变找到BOOL CCounterTestApp::InitInstance()方法将如下附带代码注释掉也就是代码中带*的部分 BOOL CCounterTestApp::InitInstance() {AfxEnableControlContainer();// Standard initialization// If you are not using these features and wish to reduce the size// of your final executable, you should remove from the following// the specific initialization routines you do not need.#ifdef _AFXDLLEnable3dControls(); // Call this when using MFC in a shared DLL #elseEnable3dControlsStatic(); // Call this when linking to MFC statically #endif/*CCounterTestDlg dlg;m_pMainWnd dlg;int nResponse dlg.DoModal();if (nResponse IDOK){// TODO: Place code here to handle when the dialog is// dismissed with OK}else if (nResponse IDCANCEL){// TODO: Place code here to handle when the dialog is// dismissed with Cancel}*/// Since the dialog has been closed, return FALSE so that we exit the// application, rather than start the applications message pump.return FALSE; }由于我们希望这个Project运行后显示的是图2这样的CppUnit自带的界面所以我们需要在Instance()中屏蔽掉原有的对话框蓝色部分注释掉代之以CppUnit的GUI。 第四步:实现CppUnit测试执行器并将测试套添加到测试执行器中。 A、在BOOL CCounterTestApp::InitInstance()中添加如下附加注释的代码 BOOL CCounterTestApp::InitInstance() {AfxEnableControlContainer();// Standard initialization// If you are not using these features and wish to reduce the size// of your final executable, you should remove from the following// the specific initialization routines you do not need.#ifdef _AFXDLLEnable3dControls(); // Call this when using MFC in a shared DLL #elseEnable3dControlsStatic(); // Call this when linking to MFC statically #endif//添加CppUnit的MFC类型的测试执行器CppUnit::MfcUi::TestRunner runner; //为被测试类这里是CCounter定义一个测试工厂(这里取名叫CounterTest):CppUnit::TestFactoryRegistry registryCppUnit::TestFactoryRegistry::getRegistry(CounterTest);//并将工厂添加到测试执行器中 runner.addTest( registry.makeTest() );//运行执行器显示执行器GUI界面runner.run(); /*CCounterTestDlg dlg;m_pMainWnd dlg;int nResponse dlg.DoModal();if (nResponse IDOK){// TODO: Place code here to handle when the dialog is// dismissed with OK}else if (nResponse IDCANCEL){// TODO: Place code here to handle when the dialog is// dismissed with Cancel}*/// Since the dialog has been closed, return FALSE so that we exit the// application, rather than start the applications message pump.return FALSE; }B、由于在BOOL CCounterTestApp::InitInstance()中引用了CppUnit的类所以在文件开始处要添加如下头文件 #include cppunit/extensions/TestFactoryRegistry.h #include cppunit/ui/mfc/TestRunner.h第五步添加被测对象CCounter。 将被测对象所在文件CounterMod.h和CounterMod.cpp 添加到工程中 第六步在工程中为被测对象CCounter编写测试类文件MyTest(可以自定义文件名) 按照下面示图加入测试类的*.h文件和*.cpp文件 MyTest.h中的代码如下 #include cppunit/extensions/HelperMacros.hclass IsCodeLineTest : public CppUnit::TestFixture {// 声明一个TestSuiteCPPUNIT_TEST_SUITE( IsCodeLineTest);// 添加测试用例到TestSuite, 定义新的测试用例需要在这儿声明一下CPPUNIT_TEST( Test1 );// TestSuite声明完成CPPUNIT_TEST_SUITE_END();public:// 定义测试用例void Test1 ();};MyTest.cpp中的代码如下注意头文件要做相应的修改 #include stdafx.h#include MyTest.h #include CounterMod.h// 把这个TestSuite注册到名字为CounterTest的工厂中 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( IsCodeLineTest,CounterTest );#define RET_OK 0 #define RET_FAIL 1void IsCodeLineTest::Test1() {//定义输入参数int bIsComment;CString szFileLine;//定义期望输出int iOkReturn;int iOkIsComment;//定义测试实际输出int iResult;CCounter m_counter;//用例输入szFileLine int a;bIsComment false;//期望输出iOkReturn RET_OK;iOkIsComment false;//驱动被测函数iResult m_counter.IsCodeLine(szFileLine,bIsComment);//结果比较CPPUNIT_ASSERT_EQUAL(iOkReturn,iResult);CPPUNIT_ASSERT_EQUAL(iOkIsComment,bIsComment); } 第七步加入CppUnit 库文件 把CppUnit相关的lib文件和dll文件cppunitd.lib,cppunitd_dll.lib,testrunnerd.lib加入到工程中 第八步设置头文件和lib库文件路径、打开RTTI开关、给dLL库设置环境变量 在VC的tools/options/directories/include files和library files中设置CppUnit include文件路径和lib文件路径 在你的VC project中打开RTTI开关。具体位置Project Settings/C/C Language C、为TestRunnerd.dll设置环境变量    TestRunnerd.dll为我们提供了基于GUI的测试环境。为了让我们的测试程序能正确的调用它需要把TestRunnerd.dll拷贝到你的工程路径下。或者最简单的方法是在操作系统的环境变量Path中添TestRunnerd.dll的路径这样是最省事的。 第九步编译执行。编译连接成功后运行测试出现下面的界面,表示测试用例Test1运行成功.
http://www.hkea.cn/news/14347118/

相关文章:

  • 公众号做淘宝客接入手机网站网站建设需求文档下载
  • 网站建设源程序代码兰州压热搜
  • 东莞营销型网站设计wordpress过滤器
  • 网站怎么做成app小程序做跳转微网站
  • 做网站要有策划么好口碑的关键词优化
  • wordpress微网站模板网站积分方案
  • 大型网站要多少钱农业网站如何建设
  • 保定 网站制作 招聘企业信息平台
  • 大作设计网站是中国的吗广告推广有哪些平台
  • 深圳培训手机网站建设网站毕业设计选题
  • 美团初期是怎么建网站企业建站平台
  • 如何做电子商务网站在线视频网站 一级做爰片
  • 品牌策划网站推荐厦门博客网站制作
  • 学校网站建设运行情况网站模板 wordpress带会员系统
  • 成都手机网站制作常见的网页布局结构有哪些
  • 个人备案网站名桂林网站建设官网
  • 如何做个免费的网站嘉定做网站的
  • 网站建设与管理怎么做深圳视频网站开发
  • 全国企业信息查询网站大宗商品交易平台app
  • 网站首页代码模板网站图片一般像素
  • 建筑工程网站大全apache2 wordpress
  • 网站界面设计原则免费注册公司的套路
  • 上海做企业网站的公司免费咨询健康
  • 胖哥网站的建设目标一级造价工程师注册管理系统
  • 大连网站排名网络推广公司国外cps推广平台
  • 网站开发与应用专业就业方向营销网站建设专业公司
  • 可以建网站的公司网站添加在线留言
  • 网站服务类型怎么选网站设计方案书ppt
  • 上海傲石设计网站云服务器怎么做网站
  • 免费网站模板下载响应式网站效果图做多大的