谈到单元测试,任何一个开发或是测试人员都不会以为陌生。我想大多数的同窗也都是接触过各类单元测试框架。关于单元测试的重要性,应该不会有太多的质疑。这个系列,我向你们介绍一下xUnit.Net的使用。就让咱们一块儿来玩转xUnit.Net吧。本文要讨论的内容以下:html
有不少小伙伴常常会提到所谓“框架”,框架这样的概念有不少好比:XX开发框架,ORM框架,Selenium框架,Mock框架以及咱们要提到的单元测试框架。这些概念随处可见,在我看来学习一个技术框架的开始,最好是了解一下它为咱们提供了什么?那么,通常使用者指望的单元测试框架应该为咱们提供哪些功能呢?git
以上4个功能是每个单元测试框架都会提供的能力,并且xUnit.Net框架(也包括常见的测试框架)还提供了其余炫酷的功能。关于单元测试的质量,实施的难度... ... 等话题我会在本系列最后的总结中跟你们分享我的的感觉和经验。那么,就让咱们一步步的开始咱们的单元测试之旅吧。github
这个部分就和你们一块儿来简要的浏览一下.NET平台下面几种常见的单元测试框架,关于每种框架的对比网上已经有过无数的对照表了这里我就不在赘述了:编程
xUnit.Net的由来:NUnit的创造者Jim Newkirk公布了一个新的单元测试框架,叫作xUnit.net。这是一个以NUnit的接班人自许的新框架,做者打算消除NUnit的错误和缺点,并在框架中加入一些最佳实践和扩展能力。xUnit.Net是开源的GitHub地址:https://github.com/xunit/xunit。框架
在单元测试的Attribute方面xUnit.Net作了一些精简,图中咱们能够看到xUnit.Net有了如下几个不一样于其余单元测试框架的地方:函数
断言是每一个单元测试框架的另外一个重要功能,而在这一方面xUnit.Net简化了不少其余框架中略微重复的功能。与此同时也提供了灵活的扩展方式给使用者,关于如何扩展xUnit.Net我会在随后的文章中详细的介绍。post
这一部份内容在我另外一个系列《Selenium For C# 教程》的第一篇《[小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建》中已经有所描述,这里再重复一下:单元测试
Step 01: 打开你的VS2013,选择"Extensions and Updates",搜索并安装xUnit.Net 项目模板学习
Step 02: 新建一个xUnit.net 的单元测试项目(Demo.SeleniumTest),点击“ok”。测试
Step 03:右键项目的References,并选择Manager NuGet Packages... , 下载最新版本的xUnit.Net. , 以及Selenium 的驱动包。
搜索并安装最新版的xUnit.Net。
PS:也能够不下载模板,直接建立一个类库,用Nuget添加xUnit.Net的引用便可。
前面说了那么多,下面咱们就来看看一个简单的xUnit.Net测试用例是什么样子:
1 using System; 2 using System.Collections.Generic; 3 using Xunit; 4 5 public class EqualExample 6 { 7 [Fact] 8 public void EqualStringIgnoreCase() 9 { 10 string expected = "TestString"; 11 string actual = "teststring"; 12 13 Assert.False(actual == expected); 14 Assert.NotEqual(expected, actual); 15 Assert.Equal(expected, actual, StringComparer.CurrentCultureIgnoreCase); 16 } 17 }
上面的例子咱们能够看到,测试类没有标签,咱们只是标记了须要测试的方法(PS:通常系列的第一篇貌似都没什么养分)。这一篇就先到这里吧。
小北De系列文章:
《[小北De编程手记] : Selenium For C# 教程》
《[小北De编程手记]:C# 进化史》(未完成)
《[小北De编程手记]:玩转 xUnit.Net》(未完成)