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