因为项目的关系,现在项目中需要用到单元测试,以前的项目中没有使用过,所以对这个不熟悉,现在正好利用这个机会学习一下单元测试,这篇文章主要从以下几个方面来总结,以便能够入门单元测试。
1,什么是单元测试?
2,常见的单元测试框架?
3,如何使用VS自带的单元测试框架进行单元测试?
1,什么是单元测试
简单来说,单元测试就是检查一个方法执行后的结果是否与预期的一致。
2,常见的单元测试框架
1) NUnit,是xUnit家族中的一员,有java版的JUnit,NUnit是专门针对.net平台的单元测试框架,它的最大优点是免费,轻量和节约内存,它不需要借助IDE就可以直接运行。
2) vsUnit,是Visual Studio集成的单元测试框架,它的最大优点是与vs集成,受IDE内部支持。另外还提供了丰富的断言和属性。这篇文章主要就是以vsUnit为例来总结。
3,如何使用VS自带的单元测试框架(vsUnit)进行单元测试
使用vs自带的单元测试框架创建单元测试可以总结为以下几个步骤:
第1步:创建一个类库项目并写好待测试的方法(或称为函数)
第2步:在待测试的方法上右击,选择”创建单元测试”选项,如图。
第3步:打开创建单元测试窗口,可以看到我们选择的待测试方法已经选中了,点击确定。
第5步:这样,vs就为我们生成了一个单元测试的框架,看一下生成的测试代码。
生成的工程,并添加了对Microsoft.VisualStudio.QualityTools.UnitTestFramework程序集的引用,我们所有的测试API都定义在这个dll中。
图为生成的测试代码,可以看到vs自动给类添加了TestClass特性,给方法添加了TestMethod特性。
第6步:编写测试代码,并用断言Assert判断测试是否通过。代码如下。
[TestMethod()] public void AddTest() { Class1 target = new Class1(); // TODO: Initialize to an appropriate value double d1 = 2F; // TODO: Initialize to an appropriate value double d2 = 3F; // TODO: Initialize to an appropriate value double expected = 5F; // 期望值 double actual; actual = target.Add(d1, d2);//实际值 Assert.AreEqual(expected, actual);//利用断言判断实际值是否与期望值一致,如果一致则测试通过,否则失败 }
第7步:运行单元测试。有两种方式,一种是在方法上右键选择运行“测试”,第二种方法是利用测试视图。
方法一:在方法上右键选择
方法二:利用测试视图
第8步:查看测试结果,可以通过测试结果窗口查看,如图所示,如果为passed表示测试通过,如果为failed则表示测试失败。