1、 单元测试函数
是软件测试方法的其中一种,其中还有好比动态黑盒测试、数据测试、破坏性测试等等。单元测试
单元测试也称之为“模块测试”,是对程序设计中的最小单元——函数进行测试的一种方法,所谓测试,就是验证咱们本身编写的方法能不可以获得正确的结果,即用方法获得的结果与真实结果进行比对,这就称之为测试。创建单元测试首先须要创建一个测试项目,具体操做以下:测试
2、 控制台程序的单元测试spa
一、 首先创建一个类库项目,里面包含一个计算类Calculate.cs,该类里面包含一个计算加法的方法Add,声明以下:设计
namespace核心类对象
{ 资源
publicclassCalculateit
{ io
publicdouble Add(double d1,double d2)模板
{
return d1 + d2;
}
}
}
生成项目以后会有一个“核心类.dll”,
那么这个方法须要进行测试,就要创建一个测试项目,创建对应的测试项目有两种方法:
二、 创建测试项目
方法1、
在解决方案中再添加一个新的测试项目,“右击/添加/新建项目”,在左侧选择“测试”模板,肯定便可,以下
namespace测试类
{
[TestClass]
publicclassCalculateTest1
{
[TestMethod]
publicvoid AddMethod1()
{
Calculate cal = newCalculate();
double d1 = 110;
double d2 = 220;
Assert.AreEqual(cal.Add(d1,d2),230);
}
}
}
注意咱们须要手动更改类名和方法名,都改为以Test1和Method1结尾。生成解决方案的时候,咱们打开“测试资源管理器窗口”及执行菜单命令“测试/窗口/测试资源管理器”就能够了,而后就能够看见每个对应的方法所对应的测试方法名称,咱们能够选择运行单个方法,也能够选择运行全部的测试方法。那么测试的方法体怎么去写呢?
因为测试原本的意义就是验证一个方法你能不能获得正确的计算结果,因此咱们须要找出一个正确的计算结果,与方法计算的结果进行比较就能够了,实现以下:
using System;
usingMicrosoft.VisualStudio.TestTools.UnitTesting;
using核心类; //这里须要先手动添加自定义的程序集
namespace测试类
{
[TestClass]
publicclassCalculateTest1
{
[TestMethod]
publicvoid AddMethod1() //这是方法体部分
{
Calculate cal = newCalculate();
double d1 = 110;
double d2 = 220;
Assert.AreEqual(cal.Add(d1,d2),330); //使用Assert静态类
}
}
}
而后在测试资源管理器中运行该方法的测试结果,运行可以正常经过,若是将上面的330改成230,很显然,二者结果不相等,测试不经过,会在测试资源管理器中显示出来。
方法2、
不须要手动添加测试项目,让VS自动完成,具体操做以下:
在须要进行测试的方法上即Add上“右击/建立单元测试”,VS会自动建立一个测试项目,以下所示:
namespace核心类.Tests
{
[TestClass()]
publicclassCalculateTests
{
[TestMethod()]
publicvoid AddTest()
{
Calculate cal = newCalculate();
Assert.AreEqual(cal.Add(200, 300), 500);
}
}
}
测试方法体是本身添加的。其余的操做同样。
3、 注意事项
在测试类中必需要引入的命名空间
usingMicrosoft.VisualStudio.TestTools.UnitTesting;
自动建立的测试项目咱们不用管,可是若是是本身手动建立的测试项目还必须手动添加程序集
Microsoft.VisualStudio.QualityTools.UnitTestFramework
1、测试项目和被测试项目之间的名称是具备关系的,具体以下对应关系
(测试项目名——测试项目名Tests)
(命名空间——命名空间.Tests)
(测试类名——测试类名Tests)
(测试方法——测试方法Test)
二、在测试类中,类必须使用特性[TestClass()]或者是[TestClass]修饰,测试的方法必须使用[TestMethod()]或者是[TestMethod]修饰,
三、测试方法的返回类型必须为void ,而且测试函数不可以有参数
四、在测试方法中的代码通常都是分为如下两个步骤
(1) 建立测试类的对象Calculate cal = newCalculate();
(2) 使用断言来判断测试结果Assert.AreEqual(cal.Add(200, 300), 500);
5、Assert静态类的相关判断方法(本身去查看定义便可)