Vc2013实战(3) 创建原生C++单元测试项目

发表于:2013-10-28 11:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:余不欢    来源:51Testing软件测试网采编

  一、创建测试项目
  在解决方案资源管理器,选中解决方案。
  右键|添加|新建项目,进入"添加新项目"对话框。
  依次选择Visual C++|测试|本机单元测试项目
  我们创建一个名为TestStock的单元测试项目,当然,仍然将显示方式改为:显示全部文件。
  二、运行测试:
  在主菜单,选择测试|窗口|测试资源管理器。运行全部测试:测试项目会编译,由此测试资源管理器将发现向导产生的名为Test1的测试,当然,这个会通过。
  三、能够测试Mfc项目中的类吗?
  多数文章介绍的是针对Dll项目的测试。我们能否测试Mfc应用项目中的类呢?答案是可以,测试项目需要链接Mfc应用项目中的相应的obj文件。步骤如下:
  1、在Stock项目中创建要测试的类
  我们创建一个名为Demo的类,这会增加对应的头文件和cpp文件。然后编译Stock项目
  2、测试项目中设置附加依赖库目录、附加依赖项、包含目录
  在测试项目的属性页中,配置属性|链接器|常规,然后再附加库目录中加入:
  $(SolutionDir)Stock\$(Configuration)
  这个使用了两个宏,当前的配置是Debug,那么$(SolutionDir)表示解决方案的目录,$(SolutionDir)Stock表示解决方案下的Stock目录,而$(Configuration)在debug配置中的值为Debug。这实际上是说明,如何找到demo.obj
  然后在链接器|输入中,编辑附加依赖项,加入demo.obj,注意不要带路径,只是文件名,上一步骤已经列出了去哪个文件夹下寻找。
  当然,要使用demo类,我们还需要#include "demo.h",因此我们要设置,在何处找到该头文件:在测试项目的属性页中,配置属性|C/C++|常规,编辑"附加包含目录",加入$(SolutionDir)Stock,这是Demo.h所在的文件夹。
  3、在测试项目中创建Demo类的实例
  我们简单的在向导生成的unittest1文件中
  加入:#include "Demo.h"
  然后在TEST_METHOD(TestMethod1)函数里,简单的创建实例
  Demo demo;
  然后编译测试项目,遇到了两个错误:C运行库问题和未链接预编译对象问题,现在知道上一篇文章的出处了吧?
  4、C运行库的问题
  我们创建Mfc应用的时候,是采用静态链接Mfc的方式,因此,使用的是/MTD方式静态链接C运行库。单元测试项目,默认使用/MDD方式动态链接C运行库。
  将单元测试项目的运行库设置,修改为/MTD即可。
  在测试项目的属性页,配置属性|C/C++|代码生成:运行库设置修改为多线程调试 (/MTd)
  5、未链接预编译对象问题
  这个,是由于demo.cpp中include了stdafx.h,预编译头文件。我们如同加入demo.obj一般,加入stdafx.obj即可。
  四、我们实际写一个测试:
  1、在Stock项目中的类视图,为demo类增加一个Add方法,做两个整数的加法
  头文件里增加了Add方法,Cpp文件也增加了,不过是返回0,没做任何事情。显然,我们还没有完成任务。
  2、在单元测试中,测试加的结果对不对:
TEST_METHOD(TestMethod1)
{
Demo demo;
Assert::AreEqual(5, demo.Add(2, 3));
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号