WEB开发网
开发学院软件开发VC 如何使用CppUnit进行单元测试 阅读

如何使用CppUnit进行单元测试

 2007-06-14 21:33:18 来源:WEB开发网   
核心提示: 我们在CUnitTestApp::InitInstance()函数中,将原先显示主对话框的代码以下面的代码取代:CppUnit::MfcUi::TestRunner runner;runner.addTest(CPlusTestCase::GetSuite());//添加测试runner.

我们在CUnitTestApp::InitInstance()函数中,将原先显示主对话框的代码以下面的代码取代:CppUnit::MfcUi::TestRunner runner;
  runner.addTest(CPlusTestCase::GetSuite());//添加测试
  runner.run();//show UI
/*  CUnitTestDlg 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
  }
*/
切记必须先在UnitTest.cpp中包含头文件:#include <cppunit/ui/mfc/TestRunner.h>
#include " PlusTestCase.h "
到此为止, 我们已经建立好一个简单的单元测试框架。测试框架虽然写好了,但是测试代码仍然为空,产品代码也还没有写。下面我们来写测试代码:

如前所述,在测试类中,我们添加了一个测试方法:void testAdd();它测试的对象是前面提到的CPlus类的方法:int Add(int nNum1, int nNum2);(产品代码)我们来看看testAdd()的实现:记得在PlusTestCase.h中包含头文件#include <cppunit/TestAssert.h>
// PlusTestCase.cpp
void CPlusTestCase::testAdd()
{
  CPlus plus;
  int nResult = plus.Add(10, 20); //执行Add操作
  CPPUNIT_ASSERT_EQUAL(30, nResult); //检查结果是否等于30  
}
CPPUNIT_ASSERT_EQUAL是一个判断结果的宏。CppUnit中类似的其它宏请查阅TestAssert.h,本文在此不做详述 。

另外,我们还可以覆写基类的 setUp()、tearDown()两个函数。这两个函数实际上是一个模板方法,在测试运行之前会调用setUp()以进行一些初始化的工作,测试结束之后又会调用tearDown()来做一些“善后工作” ,比如资源的回收等等。当然,你也可以不覆写这两个函数,因为它们在基类里定义成了空方法,而不是纯虚函数。

上一页  5 6 7 8 9 10 

Tags:如何 使用 CppUnit

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接