使用Visual Studio 2013进行单元测试--初级篇

1.打开VS2013 --> 新建一个项目。这里咱们默认建立一个控制台项目。取名为UnitTestDemo框架

2.在解决方案里面新增一个单元测试项目。取名为UnitTestDemoTest工具

建立完毕后项目结构大概以下:性能

 

3.进入控制台项目UnitTestDemo的Program类,建立一个Add方法。单元测试

namespace UnitTestDemo
{
    class Program
    {
        static void Main(string[] args)
        {
        }

        public static int Add(int num1, int num2)
        {
            return num1 + num2;
        }
    }
}

 

4.咱们的目的就是测试上面的Add方法运行是否正常,返回结果是否正确。学习

5.在单元测试项目中引用控制台项目,引用完毕后项目结构以下:测试

 

6.单元测试项目里面UnitTest1这个类的名字取得太难看了,咱们把名字改成ProgramTest,代表这是在测试Program类。改完以下:spa

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestDemoTest
{
    [TestClass]
    public class ProgramTest
    {
        [TestMethod]
        public void TestMethod1()
        {
        }
    }
}

 

7.上面就是VS为ProgramTest类默认生成的方法。能够看到ProgramTest具备一个【TestClass】特性,代表这是一个测试类。TestMethod1具备一个【TestMethod】特性,代表这是一个测试方法。插件

 

8.能够这样理解,一个方法必须具备【TestMethod】特性,且其所属的类具备【TestClass】特性,那么这个方法才会被VS认可为一个【单元测试方法】。翻译

若是没有上面的两个特性中的一个,编译生成是没有任何问题的。可是VS不会把其做为一个【单元测试方法】。3d

 

9.“VS不把一个方法做为【单元测试方法】”是什么意思呢?

依次点击VS的菜单栏【测试】--> 【窗口】-->【测试资源管理器】,能够打开测试资源管理器。

 

 

10.测试资源管理器里面会显示当前解决方案里面的全部单元测试。说明白点就是这里只显示符合【第8点】要求的方法。

你可能会说,为何上面的图里面什么都没显示,【TestMethod】特性和TestClass】特性如今不是都有吗?

缘由是你尚未生成程序集。OK,按F6.就能够看到【测试资源管理器】中显示了【TestMethod1】:

 

11.咱们要清楚咱们建立单元测试的初衷:是用工具帮助咱们测试软件的质量、稳定性、性能等等。【VS】在这里就充当了工具的做用。

 

12.回到命名的问题,很明显TestMethod这个名字太难看了,咱们把它改为AddTest表示这是在测试Add方法。

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestDemoTest
{
    [TestClass]
    public class ProgramTest
    {
        [TestMethod]
        public void AddTest()
        {
        }
    }
}

 

13.截止目前,咱们已经创建了一个能够执行的测试框架,虽然没有起到什么做用,可是测试已经能够执行了。

执行测试的方法之一是:右键点击须要测试的【单元测试】方法的名称,选择运行:

 

运行测试以后,能够在测试资源管理器中查看测试的结果:

 

执行单元测试的方法有不少,这些须要咱们在不断的学习中去体会。

 

14.接下来咱们作一点有意义的事情。改进AddTest方法:

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestDemoTest
{
    [TestClass]
    public class ProgramTest
    {
        [TestMethod]
        public void AddTest()
        {
            int num1 = 100;
            int num2 = 200;

            Assert.AreEqual(Program.Add(num1, num2), 300);
        }
    }
}

 

在这以前,请把Program类的可见性改成internal或者Public。

​15.“Assert”以前没接触过单元测试的朋友,或者英语差点的可能不认识。上谷歌翻译:

清楚的看到,“Assert”的意思是“断言”。因此“Assert.AreEqual(Program.Add(num1, num2), 300);”这句话的意思就是:我断言“Program.Add(num1, num2)”的结果就是300。

而断言的正确与否只须要经过测试工具测试便可。若是测试经过说明此断言是正确的,反之就说明这个测试失败了。

断言有不少种,包括上面普通的Assert,还有字符串断言,集合断言等等。

16.ok,运行测试能够看到测试经过。

 

17.若是上面所说的你都明白,那么到这里为止,你能够本身编写简单的单元测试代码并执行测试了。

最后还有一个要说的就是,若是你以为手动编写单元测试类和方法太麻烦,那么能够使用“Unit Test Generator”插件帮助你生成单元测试和方法。

这样你能够把重心偏到编写测试逻辑上。

“Unit Test Generator”能够经过VS菜单栏【工具】-->【扩展和更新】-->搜索““Unit Test Generator””取得。

 

18.安装“Unit Test Generator”须要重启VS。

在须要进行单元测试的类和方法上点击右键,如图操做(图中演示的是生成单元测试方法)

 

 

点击以后会弹出一个对话框,须要你配置一个名称的规则,配置好后点击ok便可生成测试方法。

19.最后但愿你们养成随时测试代码的好习惯。

 

 

转载声明:欢迎转载,但请保留原文连接。

友情连接:http://www.zhoumy.cn

相关文章
相关标签/搜索