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

您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > Nunit
NUnit之Attribue詳解
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/4/9 17:19:48 ] 推薦標(biāo)簽:

  在上一篇文章“NUnit之Assertion詳解”中,給大家介紹了NUnit的斷言,現(xiàn)在接著給大家介紹Attribute在NUnit中的具體作用。

  Attribute是C#一個(gè)重要的語(yǔ)言特征,園子里應(yīng)該有不少這方面的文章,如果對(duì)Attribute不太了解,建議先去稍稍了解一下,親手做個(gè)小程序感受一下Attribute的作用。

  我們?cè)谑褂肗Unit編寫(xiě)測(cè)試用例時(shí),離不開(kāi)兩個(gè)基本的Attribute,例如,我們要測(cè)試一個(gè)類(lèi)的Add方法,使用的代碼如下:

  [TestFixture]public class MyTest{ [Test] public void TestAdd() { int a = 99; int b = 1; int value = MyMath.Add(a,b); Assert.AreEqual(value, 100); } Public void TestDel() { int value = MyMath.del(99,1); Assert.AreEqual(value, 98); }}

  上面的代碼中,已經(jīng)使用了兩個(gè)Attribute,即[TestFixture]和[Test],其中[TestFixture]的作用是聲明MyTest類(lèi)是一個(gè)含有測(cè)試方法的類(lèi),而[Test]則說(shuō)明TestAdd是一個(gè)測(cè)試方法,而TestDel由于沒(méi)有用[Test]聲明,所以它不是測(cè)試方法,雖然它以Test開(kāi)頭。

  對(duì)于編譯后的Assembly文件,NUnit是通過(guò)查找[TestFixture]和[Test]這類(lèi)它支持的與測(cè)試相關(guān)的Attribute來(lái)確定哪些類(lèi)包含了測(cè)試方法,以及這些類(lèi)中的哪些方法是測(cè)試方法。

  對(duì)于上面的例子,如果用NUnit的圖形化界面打開(kāi)其編譯后的Assembly,應(yīng)該看到如下的界面,TedtAdd方法以及它所屬的命名空間按照樹(shù)的形式展開(kāi),而TestDel方法由于沒(méi)有[Test]的聲明,所以它只是一個(gè)普通的方法,也沒(méi)有在樹(shù)中展現(xiàn):

  點(diǎn)擊Run按鈕后,NUnit會(huì)運(yùn)行所有的測(cè)試方法,運(yùn)行后的界面如下

  通過(guò)上面的小例子,我們知道了[TestFixture]和[Test]這兩個(gè)Attribute的作用,對(duì)它支持的Attribute有了初步了解。

  如果查看NUnit的源代碼(大家可以去官網(wǎng)注冊(cè)然后下載),可以知道,在NUnit.Framework這個(gè)命名空間中,有TestFixtureAttribute和TestAttribute兩個(gè)類(lèi),它們負(fù)責(zé)解析帶有[TestFixture]和[Test]聲明的類(lèi)和方法(在C#語(yǔ)法規(guī)范中,要實(shí)現(xiàn)一個(gè)名稱(chēng)為[ABC]的Attribute,必須建立名稱(chēng)為ABCAttribute的類(lèi),并繼承于Attribute這個(gè)基類(lèi))。

  NUnit支持的Attribute遠(yuǎn)不止上面兩個(gè),我大致把它們分為四大類(lèi),分別是控制類(lèi)、數(shù)值類(lèi)、平臺(tái)類(lèi)和其它類(lèi),下面逐一介紹

  一:控制類(lèi)

  這些Attribute控制測(cè)試類(lèi)或者測(cè)試方法,而且成對(duì)出現(xiàn),功能基本相比,了解一個(gè)自然了解另外一個(gè)。

  [TestFixture]/[Explicit]:聲明一個(gè)類(lèi)是測(cè)試類(lèi)/聲明一個(gè)類(lèi)只有在UI界面被選中時(shí)才執(zhí)行

  [TestFixtureSetup]/[TestFixtureTearDown]:在測(cè)試開(kāi)始前/結(jié)束后要執(zhí)行的操作,一個(gè)TestFixture只能有一個(gè)TestFixtureSetup或TestFixtureTearDown。

  [Test]/[Ignore]:是測(cè)試方法/忽略掉,測(cè)試時(shí)不執(zhí)行

  [Setup]/[TearDown]:每個(gè)測(cè)試方法在執(zhí)行前/結(jié)束后要執(zhí)行的操作

  二:數(shù)值類(lèi)

  數(shù)值類(lèi)Attribue是NUnit的一大亮點(diǎn),善于使用這些Attribue,將使測(cè)試方法變得清晰、簡(jiǎn)潔、可讀性強(qiáng)、可擴(kuò)展性強(qiáng),有利于進(jìn)行數(shù)據(jù)驅(qū)動(dòng)下的測(cè)試。

  為了說(shuō)明下面的例子,使用下面的方法,也是打印輸出輸入值及其數(shù)據(jù)類(lèi)型,這樣便于把執(zhí)行的結(jié)果通過(guò)打印的方式在NUnit中輸出

  Console.WriteLine(t + ", its type:" + typeof(T));

  [Values]:以參數(shù)的形式傳入一組值,NUnit會(huì)把這組值分解成相應(yīng)數(shù)量的子測(cè)試。

  例如下面的代碼,分別在[Values]中傳入三組共8個(gè)值,在執(zhí)行時(shí)便一共會(huì)分解成8個(gè)子測(cè)試方法,例如

  TestPrintInt([Values(1, 2, 3)] int x)會(huì)被分解為T(mén)estPrintInt(1)TestPrintInt(2)TestPrintInt(3)三組

  如下圖,當(dāng)選中ValueDemo這個(gè)節(jié)點(diǎn),然后點(diǎn)擊Run按鈕后,會(huì)看到一共測(cè)試了8個(gè)測(cè)試用例。

  當(dāng)了解了這個(gè)Attribue的設(shè)計(jì)思路后,以后的其它Attribute也很容易理解了,往往通過(guò)它們的命名可以猜出一二。

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 欧美精品1区2区 | 精品一区二区三区影院在线午夜 | 亚洲日韩中文字幕一区 | 免费a视频 | 日韩理论| 天天射天天操天天干 | 成年性午夜免费视频网站不卡 | 久久精品国产久精国产果冻传媒 | www.深夜福利| 一级做a免费视频观看网站 一男一女下面一进一出性视频 | free嫩白的18性中国 | 一个人看www在线视频 | 久草视频在线网 | 色综合五月 | 中文字幕亚洲 综合久久 | 成人午夜精品网站在线观看 | 国产h视频在线 | 天天狠天天透天天伊人 | 国产 日韩 欧美 亚洲 | 日韩在线免费视频 | 黄色免费观看 | 黄色影院在线观看 | 成人丁香婷婷 | 亚洲影视网 | 91精品欧美综合在线观看 | 黄色羞羞视频 | 免费看黄在线 | 精品国产成a人在线观看 | 五月婷婷伊人网 | 国产欧美日韩在线观看 | 最新国产三级在线观看不卡 | 一本久道久久综合中文字幕 | 欧美日本综合一区二区三区 | 久久99精品久久久久久欧洲站 | 亚洲视频欧洲视频 | 国产成人啪精品视频免费软件 | 日韩色网 | 日本欧美一二三区色视频 | 西西人体国模欢欢啪啪写真 | 欧美国产亚洲精品a第一页 欧美国产在线观看 | 高h辣h双处全是肉一对一 |