因为项目的关系,现在项目中需要用到单元测试,以前的项目中没有使用过,所以对这个不熟悉,现在正好利用这个机会学习一下单元测试,这篇文章主要从以下几个方面来总结,以便能够入门单元测试。

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步:在待测试的方法上右击,选择”创建单元测试”选项,如图。


unittest01

第3步:打开创建单元测试窗口,可以看到我们选择的待测试方法已经选中了,点击确定。

ut02

第4步:输入新工程的名称,点击确定
ut03

第5步:这样,vs就为我们生成了一个单元测试的框架,看一下生成的测试代码。


ut05

生成的工程,并添加了对Microsoft.VisualStudio.QualityTools.UnitTestFramework程序集的引用,我们所有的测试API都定义在这个dll中。


ut04

图为生成的测试代码,可以看到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步:运行单元测试。有两种方式,一种是在方法上右键选择运行“测试”,第二种方法是利用测试视图。

ut06

方法一:在方法上右键选择

ut07

方法二:利用测试视图

第8步:查看测试结果,可以通过测试结果窗口查看,如图所示,如果为passed表示测试通过,如果为failed则表示测试失败。

ut08

posted on 2013-07-05 22:22  永远的麦子  阅读(998)  评论(0编辑  收藏  举报