MsTest单元测试基本使用(上)

发表于:2022-12-19 10:02

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

 作者:无形道长    来源:CSDN

  1.前言
  单元测试,顾名思义就是针对某个单元的测试,一般情况下是指最小单元。但是这个最小单元也是有区别的,因为单元测试应用在很多方面,比如电视机组装,他的最小单元就是一个电容元件,在C语言中指一个函数,在Java里指一个类,桌面软件中可以指一个窗口等。我们这次讲的,就是针对C#语言,而他的的最小单元,是一个函数(属性也可以是最小单元)。
  2.MsTest测试原理
  C#语言的方法怎么测试。大部分情况,我们的测试方法就是打断点,然后进入调试,这个方法要求的条件多,过程麻烦,费时间,而且这个叫调试而不是测试。
  白盒测试的方法就是另起一个方法去测试已有的方法,白盒测试的这个性质,注定了是由开发人员来实现白盒测试。
  目前比较常用的单元测试框架,有Nunit、vs内置的MSTest以及Xunit,大同小异,本文主要介绍MSTest测试框架。
  3.实例操作
  我们创建一个控制台项目:
  我们以一个公司制造电池为例进行单元测试的说明。
  首先,命名一个A公司的类ACompany,及其制造电池的方法MakeBattery(string V, string shape,string type),如下:
  前言已经介绍单元测试的概念,是针对方法进行测试的,这也是我们创建一个方法进行测试的原因;此时,我们在方法内,右键点击,然后选择创建单元测试。
  弹出创建单元测试的对话框,如下图所示:
  这里简单说明一下:
  ·测试框架:选择MsTestv2。测试框架一共两个——MsTest和MsTestv2。MS TEST V1: V1在.net framework中自带,引用Microsoft.VisualStudio.QualityTools.UnitTestFramework即可MS TEST V2: V2的版本依赖于两个包: MSTest.TestFramework和MSTest.TestAdapter这两个版本使用起来还是大同小异的,MS TEST V2主要是为了.net core准备的,当然也可以在.net framework上运行,并且新加入了一些扩展。
  · 测试项目:默认选择新测试项目。在这之后,mstest会自动帮开发者选择相应的测试项目。
  · 测试项目的名称格式。自动化测试本质上也是一个项目,类似类库项目的一个无法自启动的项目。所有的测试方法集成在里面。默认的名称和被测试的项目名称有关联。
  · 命名空间。类似测试项目的名称,和我们所需要测试的方法所在的命名空间有一定关联。
  · 测试的类名称,方法名称如上。
  我们可以发现,一个项目的mstest单元测试项目与其是一一对应的。
  接下来点击确定,开始创建单元测试:
  如上,我们就创建了一个简单的单元测试。接下来打开测试资源管理器。
  点击运行,开始单元测试。
  测试会失败:
  因为我们的测试方法直接断言失败。这并不是我们想要的结果。我们的目的是为了测试方法,我们需要修改里面的测试方法。
  如下图所示:
  我们这里模拟了一个创造电池的方法,我们要创造一个12V的、圆形的手机电池。看代码的最后一句:
  Assert.AreEqual(“电压12V形状为圆形的手机电池”, res);
  Assert是断言的意思,这里的目的是为了判断方法运行的结果是否和我们预期的结果一样,这是判断单元测试是否OK的关键。
  被测试的方法不一定返回值,只要有输出就可以。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号