[小北De編程手記] : Lesson 01 玩轉 xUnit.Net 之 概述 Selenium For C# 教程 [小北De編程手記] : Lesson 01 - Selenium For C#

  談到單元測試,任何一個開發或是測試人員都不會以爲陌生。我想大多數的同窗也都是接觸過各類單元測試框架。關於單元測試的重要性,應該不會有太多的質疑。這個系列,我向你們介紹一下xUnit.Net的使用。就讓咱們一塊兒來玩轉xUnit.Net吧。本文要討論的內容以下:html

  • 單元測試框架提供了什麼
  • .Net平臺常見單元測試框架介紹
  • xUnit.Net簡介
  • xUnit.Net 安裝
  • 第一個xUnit.Net Case

(一)單元測試框架的提供了什麼

  有不少小夥伴常常會提到所謂「框架」,框架這樣的概念有不少好比:XX開發框架,ORM框架,Selenium框架,Mock框架以及咱們要提到的單元測試框架。這些概念隨處可見,在我看來學習一個技術框架的開始,最好是瞭解一下它爲咱們提供了什麼?那麼,通常使用者指望的單元測試框架應該爲咱們提供哪些功能呢?git

  • 運行 Test Case:這包括直接運行測試用例,或是以數據驅動的方式來運行
  • 斷言判斷:用來判斷測試結果是否合理的系統支持
  • 不一樣級別的Fixture(夾具,這個單詞這麼翻譯過來總覺的怪怪的~~):便可以在Case開始和結束的時候作一些初始化的操做,以及支持AUT的理念
  • 輸出日誌:能夠在不一樣的載體上輸出Case的運行日誌

  以上4個功能是每個單元測試框架都會提供的能力,並且xUnit.Net框架(也包括常見的測試框架)還提供了其餘炫酷的功能。關於單元測試的質量,實施的難度... ... 等話題我會在本系列最後的總結中跟你們分享我的的感覺和經驗。那麼,就讓咱們一步步的開始咱們的單元測試之旅吧。github

(二).Net平臺常見單元測試框架介紹

  這個部分就和你們一塊兒來簡要的瀏覽一下.NET平臺下面幾種常見的單元測試框架,關於每種框架的對比網上已經有過無數的對照表了這裏我就不在贅述了:編程

  • NUnit : 是xUnit家族的產品之一,也是被普遍使用的單元測試框架。
  • MsTest : MS Test框架是Visual Studio自帶的測試框架,由微軟提供。
  • MbUnit : 實現了大師Marc Clifton關於單元測試的一些設想,Marc提出了一種形式化的超越基本的TDD的測試模式, Marc而後把它的思想轉化爲代碼叫作AUT(Advanced Unit Testing)。
  • xUnit.Net(推薦) : 本系列要介紹給你們的單元測試框架,本人以爲這是集合了NUnit 和MbUnit之長的一個擴展性很好的單元測試框架

(三)xUnit.Net簡介

  xUnit.Net的由來:NUnit的創造者Jim Newkirk公佈了一個新的單元測試框架,叫作xUnit.net。這是一個以NUnit的接班人自許的新框架,做者打算消除NUnit的錯誤和缺點,並在框架中加入一些最佳實踐和擴展能力。xUnit.Net是開源的GitHub地址:https://github.com/xunit/xunit框架

@Attribute

  在單元測試的Attribute方面xUnit.Net作了一些精簡,圖中咱們能夠看到xUnit.Net有了如下幾個不一樣於其餘單元測試框架的地方:函數

  • 移除了針對Class級別的標籤
  • 其餘框架所提供的Test Case開始和結束的操做函數標記,利用C#的構造函數和IDispose.Dispose接口代替
  • 提供了更加優雅的方式實現了大師Marc Clifton關於Fixture的設想。(即IClassFixture和ICollectionFixture)
  • 簡化了Ignore Case的方法
  • 提供了對數據驅動測試的支持

 

@Assertion

  斷言是每一個單元測試框架的另外一個重要功能,而在這一方面xUnit.Net簡化了不少其餘框架中略微重複的功能。與此同時也提供了靈活的擴展方式給使用者,關於如何擴展xUnit.Net我會在隨後的文章中詳細的介紹。post

(四)xUnit.Net 安裝

  這一部份內容在我另外一個系列《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 Case

  前面說了那麼多,下面咱們就來看看一個簡單的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》(未完成)

若是您認爲這篇文章還不錯或者有所收穫,能夠點擊右下角的 【推薦】按鈕,由於你的支持是我繼續寫做,分享的最大動力!
做者:小北@North
來源:http://www.cnblogs.com/NorthAlan
聲明:本博客原創文字只表明本人工做中在某一時間內總結的觀點或結論,與本人所在單位沒有直接利益關係。非商業,未受權,貼子請以現狀保留,轉載時必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
相關文章
相關標籤/搜索