如何在VS2015中對MFC工程進行單元測試,步驟如下:
1. 點文件/新建/項目, 建一個MFC工程MFCApplication1。因使用VC時,一般都會用到MFC, 爲接近實際需求,建的是一個MFC工程,一切都用默認的設置,一直點下一步,直到完成。
2. 在MFC工程中添加一個類CCalculator,用於測試。爲接近實際需求,該類派生自CObject.
3. 點文件/添加/新建項目/測試/本機單元測試項目,爲MFC工程生成一個測試工程UnitTest1。
4. 在UnitTest1工程中添加測試代碼
打開unittest1.cpp文件,添加引用CCalculator類的頭文件
#include "..\MFCApplication1\Calculator.h"
在unittest1.cpp的測試函數中添加測試CCalculator的代碼
TEST_METHOD(TestMethod1)
{
// TODO: 在此輸入測試代碼
CCalculator cal;
int ret = cal.Add(1, 2);
}
5.在UnitTest1工程屬性:鏈接器/輸入/附加依賴項中添加obj文件,因爲是所測試的工程是MFC工程,所以除了需要添加Calculator.obj,還需要添加stdafx.obj,否則編譯UnitTest1工程時,會出現“未定義基類”的提示。
6. 重點來了,因爲所測工程是MFC工程,因此UnitTest1工程中要添加使用MFC庫
在UnitTest1的工程 ”屬性/常規/MFC的使用“ 中選擇“在共享DLL中使用MFC”,如下圖:
7. 繼續在UnitTest1工程中添加使用MFC庫,打開stdafx.h,在其中添加MFC庫的頭文件,這裏爲省事,直接將MFCApplication1工程中的stdafx.h中與MFC相關的頭文件加了進來。
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 構造函數將是顯式的
// 關閉 MFC 對某些常見但經常可放心忽略的警告消息的隱藏
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC 核心組件和標準組件
#include <afxext.h> // MFC 擴展
#include <afxdisp.h> // MFC 自動化類
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 對 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 對 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT
#include <afxcontrolbars.h> // 功能區和控件條的 MFC 支持
#include <afx.h>
8. 編譯所有工程,然後點菜單:測試/運行/所有測試,如果沒有報錯,則說明測試環境搭建成功。
本文章示例工程下載地址:https://download.csdn.net/download/zztoll/12258555