日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
測試工具NUnit之Assertion詳解

園子里有了不少介紹NUnit的文章,想到以前本人在上一家公司時(shí)也寫過內(nèi)部的PPT介紹,故將其整理、修改,并將分成以下三部分分別進(jìn)行介紹:

為城東等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及城東網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、城東網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

2:NUnit之Attribue詳解

3:NUnit擴(kuò)展

其中1、2部分比較簡單,僅供對(duì)NUnit不太了解的網(wǎng)友參考,有興起對(duì)NUnit進(jìn)行擴(kuò)展的網(wǎng)友可以關(guān)注第三部分。

NUnit之Assertion詳解

NUnit是.Net平臺(tái)的測試框架,廣泛同于.Net平臺(tái)的單元測試和回歸測試中。

任何xUnit工具都使用斷言進(jìn)行條件的判斷,NUnit自然也不例外,與其它的xUnit(如Junit、phpUnit、pythonUnit)相比,由于大量使用了Generic、Attribute等語言特征,NUnit提供了更為方面、靈活的測試方法,下面先介紹一下斷言。

Nunit一共有四個(gè)類斷言類,分別是Assert、StringAssert、FileAssert和DirectoryAssert,它們都在NUnit.Framework命名空間,其中Assert是常用,也是我們最熟悉的,而另外三個(gè)斷言類,顧名思義,分別對(duì)應(yīng)于字符串的斷言、文件的斷言和目錄的斷言,理論上,僅Assert類就可以完成所有條件的判斷,然而,如果合理的運(yùn)用后面的三個(gè)斷言,將使代碼更加簡潔、美觀,也更加便于理解和維護(hù)。

一:Assert類

對(duì)于我們通常的單元測試代碼,Assert類中的靜態(tài)方法就可以完成,其中大家最熟悉的應(yīng)該是Assert. AreEqual()方法,其實(shí),除了AreEqual,NUnit還提供了眾多的比較方式,滿足不同的代碼要求。

1:相等/不相等判斷

AreEqual:判斷兩個(gè)值相等

AreNotEqual:判斷兩個(gè)值不相等

示例:

 
 
 
  1.   Int a=1  
  2.   Assert.AreEqual(a,1);//通過判斷  
  3.   Assert.AreEqual(a,2);//不能通過判斷 

注意,除了AreEqual/ AreNotEqual,下面幾乎所有的方法都支持多態(tài)(多種數(shù)據(jù)類型),以及多參數(shù),除了經(jīng)常使用的Assert .AreEqual(int a,int b),還有一種典型的參數(shù)形式:

Assert.AreEqual(inta,intb,stringmessage);

或者 Assert.XXX(inta,intb,stringmessage);

其中第三個(gè)參數(shù)是條件不通過時(shí)輸出的信息,以便于錯(cuò)誤的定位

對(duì)于double和decimal類型,這兩個(gè)方法還支持比較時(shí)的浮點(diǎn)誤差

例如以下代碼:

 
 
 
  1.   doublea = 1.1;  
  2.   doubleb = 1.11;  
  3.   doublec = 0.1;  
  4.   Assert.AreEqual(a, b, c);//通過判斷  
  5.   c=0.01;  
  6.   Assert.AreEqual(a, b, c);//不能通過判斷 

2:類的判斷

AreSame:判斷兩個(gè)對(duì)象相等

AreNotSame:判斷兩個(gè)對(duì)象不相等

Contains:判斷是否是否某對(duì)象

示例:

 
 
 
  1.   Listlist = newList();  
  2.   list.Add("a");  
  3.   list.Add("b");  
  4.   Assert.Contains("a", list); //通過判斷  
  5.   Assert.Contains("aa", list); //不能通過判斷 

3:條件判斷

IsTrue:判斷條件為真

True:同上

IsFalse:判斷條件為假

False:同上

IsNull:判斷是否為空

Null:同上

IsNotNull:判斷不為空間

NotNull:同上

IsNaN:判斷數(shù)值是Nan

IsEmpty/IsNotEmpty:判斷字符串是否為空/不為空

IsEmpty/IsNotEmpty:判斷集合是否為空/不為空

示例:

inta=100;

Assert. IsTrue(a==100);//通過判斷

Assert. True(a==100);//通過判斷

4:比較判斷

Greater:大于

GreaterOrEqual:大于等于

Less:小于

LessOrEqual:小于大于

示例:

 
 
 
  1.   inta = 100;  
  2.   Assert.Greater(a, 99);  
  3.   Assert.GreaterOrEqual(a, 100); 

5:類型判斷

IsInstanceOfType/ IsNotInstanceOfType:是/不是某個(gè)類的實(shí)例(從2.5之后支持泛型)

例如:

 
 
 
  1.   publicclassPerson  
  2.   {  
  3.   publicstringname {set;get;}  
  4.   }  
  5.   Person p = newPerson();  
  6.   p.name = "a";  
  7.   Assert.IsInstanceOf(typeof(Person), p);//通過判斷  
  8.   Assert.IsInstanceOf(typeof(System.String), p);//不能通過判斷 

6:異常判斷

Throws:應(yīng)該拋出某類型的異常

DoesNotThrow:不應(yīng)該拋出某類型的異常

7:其它常用的方法

Pass:強(qiáng)行讓測試通過

Fail:強(qiáng)行讓測試失敗

Ignore:忽略該測試方法

Inconclusive:未驗(yàn)證該測試

二:StringAssert類

StringAssert用于String類型的斷言判斷:

StringAssert.Contains:是否包含子串

StringAssert.StartsWith:是否以某子串開頭

StringAssert.EndsWith:是否以某子串結(jié)尾

StringAssert.AreEqualIgnoringCase:兩個(gè)字符串是否在不區(qū)分大小寫時(shí)相等

StringAssert.IsMatch:是否匹配,(使用正則表達(dá)式進(jìn)行字符串比較)

示例:

 
 
 
  1.   strings1 = "abc";  
  2.  StringAssert.Contains("b", s1);  
  3.  StringAssert.StartsWith("a", s1);  
  4.   StringAssert.EndsWith("c", s1);  
  5.   strings2 = "aBc";  
  6.   StringAssert.AreEqualIgnoringCase(s1, s2);  
  7.   StringAssert.IsMatch("[a|book]", "123"); 

三:CollectionAssert類

AllItemsAreInstancesOfType:集合中的各項(xiàng)是否是某某類型的實(shí)例

AllItemsAreNotNull:集合中的各項(xiàng)均不為空

AllItemsAreUnique:集合中的各項(xiàng)唯一

AreEqual:兩個(gè)集合相等

AreEquivalent:兩個(gè)集合相當(dāng)

AreNotEqual:兩個(gè)集合不相等

AreNotEquivalent:兩個(gè)集合不相當(dāng)

DoesNotContain:集合中不包含某對(duì)象

IsSubsetOf:一個(gè)集合是另外一個(gè)集合的子集

IsNotSubsetOf:一個(gè)集合不是另外一個(gè)集合的子集

IsEmpty:集合為空

IsNotEmpty:集合不為空

IsOrdered:集合的各項(xiàng)已經(jīng)排序

示例:

 
 
 
  1.   Lista = newList();  
  2.   Listb = newList();  
  3.   CollectionAssert.IsEmpty(a);  
  4.   for(inti = 1;i <= 10;i++)  
  5.   {  
  6.   a.Add(i);  
  7.   b.Add(i);  
  8.   }  
  9.   CollectionAssert.AreEqual(a, b);  
  10.   CollectionAssert.IsOrdered(a);  
  11.   b.Remove(1);  
  12.   CollectionAssert.IsSubsetOf(b, a);  
  13.   CollectionAssert.AreEqual(a, b); 

后記:關(guān)于NUnit的斷言就大概介紹這些,其實(shí),不僅僅是測試人員,.Net程序員也應(yīng)該熟悉掌握NUnit,以保證自己的代碼質(zhì)量,關(guān)于NUnit的進(jìn)一步使用,將陸續(xù)介紹。


新聞標(biāo)題:測試工具NUnit之Assertion詳解
標(biāo)題URL:http://www.5511xx.com/article/djgjigj.html