如何在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