CppUnitLite测试MFC项目
来源:互联网 发布:高压电棍专卖淘宝 编辑:程序博客网 时间:2024/04/30 07:50
CppUnitLite测试MFC项目
2008-09-02 18:54 712人阅读 评论(1) 收藏 举报
mfc测试单元测试dialognullexe
CppUnitLite简单易用,而且给程序员提供了很大的扩展性。一般来说,对于普通的逻辑判断,I/O操作甚至网络(虽然不一定是单元测试的范畴),已经可以做到很好的支持了。但是,对于界面程序,如何做单元测试呢?下面就以MFC作为例子进行介绍。
1.为你的MFC程序建一个测试工程(CppUnit的入门使用,见http://blog.csdn.net/enjoyeclipse/archive/2008/08/01/2750759.aspx)。由于要测试MFC程序,因此要选择共享中支持MFC.又由于MFC一般对ATL的支持,同时也要选择支持ATL.
2.添加源文件。若源文件是以DLL或Lib方式的,例如MyMFC.lib,那么链接器要讲该lib添加进去;如果是exe方式的,那么就把源文件添加到你的工程中。注意:可能有链接库冲突的问题,我这里要排除的是LIBCD.lib。
3.测试源文件,下面是我的程序代码:
4.OK,运行吧。不出意外的话,程序崩掉!程序显示崩在了CDialog中的Create函数里面,都是ASSERT(FALSE)惹得祸。那么,我们看看_AfxCheckDialogTemplate究竟做了什么:
原来这个函数就是将对话框的资源根据ID从资源文件加载上来。俄,加载失败后就返回FALSE了。对了,我们还要把原工程
的所有资源加载到你的测试项目中来。在VS系列中,只要简单的复制-〉粘贴就可以了。
再运行一下,不出意外的话,应该就可以运行测试了。
PS:对于界面工程,除了运行单元测试外,最好加以QTP进行功能测试。
1.为你的MFC程序建一个测试工程(CppUnit的入门使用,见http://blog.csdn.net/enjoyeclipse/archive/2008/08/01/2750759.aspx)。由于要测试MFC程序,因此要选择共享中支持MFC.又由于MFC一般对ATL的支持,同时也要选择支持ATL.
2.添加源文件。若源文件是以DLL或Lib方式的,例如MyMFC.lib,那么链接器要讲该lib添加进去;如果是exe方式的,那么就把源文件添加到你的工程中。注意:可能有链接库冲突的问题,我这里要排除的是LIBCD.lib。
3.测试源文件,下面是我的程序代码:
- #include "stdafx.h"
- #include "TestHarness.h"
- #include "AddAreaDlg.h"
- TEST(CMFCDlg, Test1)
- {
- CMFCDlgdlg;
- dlg.m_strID = "";
- dlg.Create(CMFCDlgdlg::IDD);
- CString rString;
- dlg.GetWindowText(rString);
- CHECK(rString == "ID");
- }
- if (!_AfxCheckDialogTemplate(lpszTemplateName, FALSE))
- {
- ASSERT(FALSE); // invalid dialog template name
- PostNcDestroy(); // cleanup if Create fails too soon
- return FALSE;
- }
- BOOL AFXAPI _AfxCheckDialogTemplate(LPCTSTR lpszResource, BOOL bInvisibleChild)
- {
- ASSERT(lpszResource != NULL);
- HINSTANCE hInst = AfxFindResourceHandle(lpszResource, RT_DIALOG);
- HRSRC hResource = ::FindResource(hInst, lpszResource, RT_DIALOG);
- if (hResource == NULL)
- {
- if (DWORD_PTR(lpszResource) > 0xffff)
- TRACE(traceAppMsg, 0, _T("ERROR: Cannot find dialog template named '%s'./n"),
- lpszResource);
- else
- TRACE(traceAppMsg, 0, "ERROR: Cannot find dialog template with IDD 0x%04X./n",
- LOWORD((DWORD_PTR)lpszResource));
- return FALSE;
- }
- // 以下省略
- }
的所有资源加载到你的测试项目中来。在VS系列中,只要简单的复制-〉粘贴就可以了。
再运行一下,不出意外的话,应该就可以运行测试了。
PS:对于界面工程,除了运行单元测试外,最好加以QTP进行功能测试。
- CppUnitLite测试MFC项目
- gtest测试MFC项目
- 用vs20008生成MFC项目,测试wince
- CppUnitLite的实现分析
- CppUnitLite使用详解
- CppUnitLite源码分析
- Visual Studio 2012 MFC项目添加原生测试用例
- CppUnitLite UML图解及用法
- CppUnitLite源码分析与总结
- MFC 碰撞测试
- MFC滚动条测试
- 项目测试
- 项目测试
- mfc 项目的添加
- MFC项目的建立
- MFC项目 浅谈
- MFC项目结构
- C# MFC项目实录
- 1001 字符自动应答器
- JS 改变图片样式
- 图形设备接口(GDI)
- JAVA中常用的排序之冒泡、选择、插入
- 找出01字符串中0和1连续出现的最大次数
- CppUnitLite测试MFC项目
- PCB电路板 电镀层金厚以及铜皮厚的单位
- VC学习群成员招募
- 在VC中使用ADO
- eclipse中工程前有红色大感叹号
- 设备描述表(DC)
- JS DIV层显示图片效果
- awk:好用的数据处理工具
- h264 profile