编写GUI类型的CppUnit单元测试框架及用例

 
CppUnit源代码级单元测试,编写GUI类型的测试框架,主要步骤
------------------------------------------------------------------------------------------------------------
1. 建立一个基于Dialog的VC6工程, 将testrunnerd.dll文件拷到程序同目录下;
 
2. 在Setttings中,包含cppunitd.lib和testrunnerd.lib;
ps: 如果是release,则包含cppunit.lib和testrunner.lib;
 
3. 在Setting中,打开RTTI开关;
 
4. 建立新类(如CmyTestCase),且public继承于 CppUnit::TestCase .
ex:
  class CmyTestCase : public CppUnit::TestCase
  {}
 
4. 在新类CmyTestCase的.h文件中,加上“#include "cppunit/extensions/HelperMacros.h"”.
 
5. 在新类CmyTestCase的.h文件中,加入cppunit宏,定义测试域和测试函数名;
ex:
  CPPUNIT_TEST_SUITE(CmyTestCase);
  // CPPUNIT_TEST(mytestItem1);
  CPPUNIT_TEST_SUITE_END();
note:
  CPPUNIT_TEST_SUITE宏内的类名必须是其所在类的类名,即CmyTestCase;
 
6. 在InitInstance()函数中,屏蔽掉vc6生成的Dlg实例化部分,加上TestRunner实例化声明;
ex:
  CppUnit::MfcUi::TestRunner runner;
  runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
  runner.run();
 
7. 在InitInstance()所在文件内,加入TestRunner和TestFactoryRegistry的头文件声明;
ex:
  #include <cppunit/ui/mfc/TestRunner.h>
  #include <cppunit/extensions/TestFactoryRegistry.h>
note:
  这两个头文件不能声明在vc6生成的"#ifdef _DEBUG"后面,否则系统将报17个new错误;
 

/* 1-7 OK后,GUI类型的CppUnit测试框架雏形基本OK,运行可看到测试界面,但无测试单元*/

------------------------------------------------------------------------------------------------------------------
 
8. 在CmyTestCase的.cpp文件中,添加该类的宏定义,向测试框架注册测试域;
ex:
  CPPUNIT_TEST_SUITE_REGISTRATION(CmyTestCase);
 
9. 向CmyTestCase中添加包含测试内容的函数声明及实现;
ex:
  void CmyTestCase::myTestItem1()
  {
    CPPUNIT_ASSERT_EQUAL(20, 20);
  }
 
10. 在CmyTestCase的类声明中添加有关测试单元的宏定义;
ex:
  /* CPPUNIT_TEST_SUITE(CmyTestCase); */
  CPPUNIT_TEST(myTestItem1);
  /* CPPUNIT_TEST_SUITE_END(); */
 
/* 8-10,实现测试单元的添加,至此,测试界面中可看到测试域和测试单元,测试框架基本OK */
 
 
//
 
参考地址:
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值