首页 | 互联网 | IT动态 | Cisco | Windows | Linux | Java | .Net | Oracle | 华为 | 存储世界 | 服务器 | 网络设备 | IDC | 安全 | 求职招聘
IT培训 | 数字网校 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 解决方案 | 直播室 | 虚拟考场 | 搜索 | 博客 | 沙龙 | 论坛
中国IT实验室软件测试频道
IT教育热线
 
首页 资讯动态 测试技术 测试工具 行业软件测试 测试管理 测试下载 经验分享 软件质量 其他技术 RSS订阅 博客 论坛
您现在的位置: 中国IT实验室 >> 软件测试 >> 测试技术 >> 单元测试 >> 文章正文

如何利用BaseTestCase system 实现单元测试

文章来源中国软件测试 作者佚名 更新时间2008-5-10 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页
       虽然BaseTestCase system 是属于主线程的,在执行Test Case 后,BaseTestCase system 将接管主线程的操作权,然后使用BaseTestCase system同样可以完成单元测试,原因很简单,还是因为BaseTestCase system 它是基于代码级的。

        下面我们用一个Sample 来演示BaseTestCase system 是如何实现单元测试。

// .h

#ifdef TEST_CASE_CODE

#include "BaseTestCase.h"

class CTest_BitmapFile : public CBaseTestCase 

{

       TEST_CASE_MAP

       BASE_TEST_CASE_H(CTest_BitmapFile)

public:

       ………..

       void  test_LoadFile();

       ………..

};

#endif //#ifdef TEST_CASE_CODE

// .cpp

#ifdef TEST_CASE_CODE

//////////////////////////////////////////////////////////////////////

// Construction/Destruction

//////////////////////////////////////////////////////////////////////

BASE_TEST_CASE_CPP(CTest_BitmapFile)

BEGIN_TEST_CASE_MAP(CTest_BitmapFile)

       ………….

       TEST_CASE_MEMBER(test_LoadFile)

       ………….

END_TEST_CASE_MAP

void  CTest_BitmapFile::test_LoadFile()

{

       TEST_CASE_TRACE("Begin");

       //定义一个将要被测试的对象

       CBitmapFile bitMapFle;

       // 准备测试数据

TCHAR szApPath [MAX_PATH] = {0};

       GetModuleFileName(NULL,szApPath,MAX_PATH);

       ASSERT(szApPath);

       CString strPath(szApPath);

       strPath.Replace("image.exe","sample.bmp");

 

       //记录测试动作,以作为报告输出

       TEST_CASE_TRACE("defining a CBitmapFile Object");

       TEST_CASE_TRACE("Load File:");

       TEST_CASE_TRACE(strPath);

 

       //测试 LoadBitmap 函数

       if(TEST_CASE_ASSERT(bitMapFle.LoadBitmap(strPath)))

       {

              //  检查测试结果是否正确

              int nHeight = bitMapFle.GetHeight();

              int nWidth = bitMapFle.GetWidth();

             

              // 输出测试结果,以作为报告输出

              TEST_CASE_TRACE("Image file info");

              char szInfo[MAX_PATH];

              wsprintf(szInfo,"Height = %d ,Width = %d ",nHeight,nWidth);

              TEST_CASE_TRACE(szInfo);

       }

[NextPage]

       {

              // 准备测试环境,一个不存在的文件

              strPath.Empty();

 

              //记录测试动作,以作为报告输出

              TEST_CASE_TRACE("Test Load a Empty file");

              TEST_CASE_ASSERT(bitMapFle.LoadBitmap(strPath));

             

              int nHeight = bitMapFle.GetHeight();

              int nWidth = bitMapFle.GetWidth();

              char szInfo[MAX_PATH];

              wsprintf(szInfo,"Height = %d ,Width = %d ",nHeight,nWidth);

             

              // 因为文件不存在,所以 这个两个变量应该为0 ,使用断言来输出结果

              TEST_CASE_ASSERT(((nWidth == 0) || (nHeight == 0)));

              // 显示实际的数据,以作为报告输出

              TEST_CASE_TRACE(szInfo);

       }

       TEST_CASE_TRACE("End");

}

#endif //#ifdef TEST_CASE_CODE

        从上面可以看到,使用BaseTestCase system 不光可以完成单元测试的动作,同时配合trace 一些信息,可以产出测试报告,真是一举双赢 ^_^

【责编:Luzi】

中国IT教育

相关产品和培训
文章评论
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·企业网管如何部署你的网络监控系统?
 ·2008年软考官方指定教材及辅导书下载专题
 ·负载均衡技术方案攻略
 ·中国IT实验室2007年技术热点盘点
 ·利用路由实现VPN的配置方法
 ·JAVA开源技术介绍专题
 ·让你的局域网网速更上一层楼
 ·Linux Shell编程实用指南
 最近更新
 博客论点
 频道精选
 软件测试频道导航