亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > Nunit
在.NET環境中使用單元測試工具Nunit
作者:網絡轉載 發布時間:[ 2013/4/8 15:59:45 ] 推薦標簽:

  簡介

  編寫單元測試是一種驗證行為,更是一種設計行為。同樣,它更是一種編寫文檔的行為。編寫單元測試避免了相當數量的反饋循環,尤其是功能驗證方面的反饋循環。

  雖然由程序開發人員自己寫Unit Tests(單元測試)來測試自己寫的程序代碼已經行之有年,但是大部分的Unit Tests都是寫在主要的程序代碼已經設計好、寫好之后。大部分的程序開發人員都有相同的的經驗,在主要程序代碼寫好之后再來加入Unit Test是一項困難的工作,而且在時間的壓力之下Unit Test通常是第一個被跳過的步驟.本篇文章介紹的是一個.NET平臺的單元測試工具NUnit。

  什么是Unit Tests(單元測試)?

  在程序設計過程中會有許多種測試,單元只是其中的一種,單元測試并不能保證程序是完美無缺的,但是在所有的測試中,單元測試是第一個環節,也是重要的一個環節。單元測試是一種由程序員自行測試的工作。簡單點說,單元測試是測試代碼撰寫者依據其所設想的方式執行是否產生了預期的結果。關于單元測試的重要性已經有許多文章做了很多深入的分析,這里不再贅述。NUnit是一個為Net準備的自動化單元測試框架,它的作用是幫助你方便的完成單元測試工作,同鼎鼎有名的JUnit一樣,都是xUnit家族的成員。它的下載地址是:http://www.nunit.org/。

  NUnit Framework(NUnit 單元測試框架)簡介

  本文所討論的NUnit 2.1是一個與它的先祖們(其它的Framework)非常不一樣的版本。其它的xUnit家族版本通常都有一個base class(基礎類),你要寫的test classes(測試用例)都得inherit(繼承)自這個base class。除此之外,別無他法能夠讓你寫Unit Tests。不幸的是,這對很多的程序語言來說造成很大的限制。比如說,Java及C#只能允許single inheritance(單一繼承)。也是說,如果你想要refactor(重構)你的Unit Tests程序代碼的話,你會遇到一些的限制;除非你引進一些復雜的inheritance hierarchies(類別繼承層級)。有了.NET之后一切又不同了,.NET引進了一個新的程序開發的概念 ─ Attributes(屬性),解決了這個煩人的問題。Attributes讓你可以在你的程序代碼之上再加入metadata(元數據,描述程序代碼的資料)。一般來說Attributes不會影響到主要程序代碼的執行,其功能是在你所寫程序代碼之上添加了額外的信息。Attributes主要使用在 documenting your code(注釋你的程序代碼),但是Attributes也可以用來提供有關Assembly的額外信息,其它的程序算沒有見過這個Assembly,也可以使用這些信息。這基本上是NUnit 2.1所作的事。在NUnit 2.1里面,有一個Test Runner Application(負責執行Unit Tests的程序),這個Test Runner會掃描你已經compile(編譯)好的程序代碼,并且從Attribute里面知道哪些classes是test classes,哪些methods是需要執行的test methods. 然后,Test Runner使用.NET的Reflection技術(在.NET Framework中提供了System.Reflection命名空間,這樣使得我們可以方便的獲得.NET組件的信息。當你想獲得正在使用的組件的詳細信息,或者在運行期間查詢一個組件信息的時候,這個功能將變的十分有用)來執行這些test methods。因為這個原因,你不再需要讓你的test classes繼承自所謂的common base class。你需要作的事,是使用正確的Attribute來描述你的test classes及test methods。NUnit提供了許多不同的attributes,讓你可以自由的寫你想要的unit tests。這些attributes可以用來定義test fixtures(見下一段解釋)、test methods,以及setup及teardown的methods(預備及善后工作的methods)。除此之外,還有其它的attributes可以來設定預期發生的exceptions,或者要求Test Runner跳過某些test method不執行。

  TestFixture Attribute簡介

  TestFixture attribute主要是用在class上,其作用是標志該class含有需要執行的test methods。當你在一個class的定義里加上這個attribute,Test Runner會檢查該class,看看這個class是否含有test methods。底下這段程序代碼示范了如何使用TestFixture Attribute。(本文中所有程序代碼都是用C#寫成,但是你應該知道,NUnit也是用于其它的.NET程序語言,包括VB.NET。請參見NUnit的相關文件。

  namespace UnitTestingExamples
  {
  using System;
  using NUnit.Framework;

  [TestFixture]
  public class SomeTests
  {

  }

  }

  使用TextFixture Attribute的class需要符合另一項附加的限制,是需要有一個public的default constructor(或者是沒有定義任何的constructor,這其實是相同的意思)。

  TestFixtureSetUp 和TestFixtureTearDown簡介

  這兩個主要用在TestFixture里面,其作用是提供一組函數執行任何測試運行之前(TestFixtureSetUP)和后一個測試執行后(TestFixtureTearDown)。每一個TestFixture只能有一個TestFixtureSetUp方法和 TestFixtureTearDown方法。如果一個以上的TestFixtureSetUp和TestFixtureTearDown方法,可以通過編譯但是不會執行。注意一個TestFixture可以擁有一個TestFixtureSetUp和一個SetUp,也可以擁有一個 TestFixtureTearDown和一個TearDown方法。

  TestFixtureSetUp 和 TestFixtureTearDown 被用在不方便使用SetUp和TearDown方法。

  一般情況使用 SetUp 和TearDown attributes。

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 一个人看的www免费在线视频 | 精品视频手机在线观看免费 | 综合自拍亚洲综合图区美腿丝袜 | 免费一级毛片在线播放 | 日韩在线小视频 | 华人欧美国产在线精品 | 欧美综合色 | 亚洲精品高清在线 | 日韩精品在线视频观看 | 亚洲成a人片77777在线播放 | 狠狠干干干 | 色视频网站人成免费 | 亚州成人 | 国产精品麻豆a啊在线观看 国产精品麻豆高清在线观看 | 在线a人片免费观看不卡 | h国产在线 | l欧美18一19sex性| 手机看片日韩国产一区二区 | 亚洲小视频在线 | 日韩精品一二三区 | 1024国产你懂的日韩 | 91精品一区二区三区久久久久 | 日韩三级免费观看 | 午夜久久影院 | 午夜综合 | 综合欧美日韩 | 在线中文高清资源免费观看 | 免费国产一级特黄久久 | 日韩美女视频在线 | 成人看片黄a毛片 | 亚洲一二四区性毛片1在线 亚洲一二三在线 | 亚洲精品成人av在线 | 欧美zozozo人禽交免费大片 | 日韩伦理网在线视频 | 成人在线视频在线观看 | 久久综合狠狠综合久久 | 521色香蕉网站在线观看 | 老司机午夜在线视频免费 | 波多野结衣 一区 | 最近更新中文字幕2019视频 | 国产一级免费在线观看 |