3、基于GUI的含宏的MFC的测试方式
  建一个基于对话框的应用程序。
  Step1:  首先需要建造窗口,在InitInstance()中注释掉如下代码:

 

/*      CdialogCppUnitDlgdlg;
m_pMainWnd =&dlg;
INT_PTRnResponse = dlg.DoModal();
if (nResponse== IDOK)
{
// TODO: 在此放置处理何时用
//  “确定”来关闭对话框的代码
}
else if (nResponse== IDCANCEL)
{
// TODO: 在此放置处理何时用
//  “取消”来关闭对话框的代码
}
*/

  编写自己的对话框:

 

CppUnit::MfcUi::TestRunner runner;
runner.addTest(PlusTest::suite());//添加测试
runner.run();//showui

  Step2:编写测试用例,代码如下:

 

PlusTestCase.h
#pragma once
#include "cppunit/TestCase.h"
#include "cppunit/extensions/HelperMacros.h"
class CPlusTestCase :public CppUnit::TestCase
{
//声明一个TestSuite
CPPUNIT_TEST_SUITE(CPlusTestCase);
//添加测试用例到TestSuite,定义新的测试用例需要在这里声明一下
//CPPUNIT_TEST(testSort);
CPPUNIT_TEST(testAdd);
//TestSuite声明完成
CPPUNIT_TEST_SUITE_END();
public:
CPlusTestCase(void);
~CPlusTestCase(void);
voidtestAdd();//测试方法
//voidtestSort();//测试排序方法
void setUp();
voidtearDown();
};
PlusTestCase.cpp
#include "StdAfx.h"
#include "PlusTestCase.h"
#include "../dllMfcDlg/CPlus.h"  //20130327
//#include "../intSort/CCSort.h"  //20130327
#pragma comment (lib, "cppunitd_dll.lib")
#pragma comment(lib,"E:\workStudyDocu\CppUnit\2008cppunit-lib-dll_32\testrunnerud.lib")
#pragma comment (lib,"E:\workStudyDocu\CppUnit\2008cppunit-lib-dll_32\cppunitd.lib")
//#pragma comment(lib,"E:\workStudyDocu\CppUnit\2008cppunit-lib-dll_32\testrunnerd.lib")
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(CPlusTestCase,"plus");//注册一个名为plus的TestSuite
//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(CPlusTestCase,"sort");
CPlusTestCase::CPlusTestCase(void)
{
}
CPlusTestCase::~CPlusTestCase(void)
{
}
void CPlusTestCase::testAdd()
{
CCPlusplus;//被测对象的类
int nret =plus.Add(10,20);
CPPUNIT_ASSERT_EQUAL(30,nret);
}
void CPlusTestCase::setUp()
{
}
void CPlusTestCase::tearDown()
{
}