亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

測試框架nunit之assertion斷言使用詳解

2020-01-24 02:49:41
字體:
來源:轉載
供稿:網友

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

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

一:Assert類

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

1:相等/不相等判斷

AreEqual:判斷兩個值相等

AreNotEqual:判斷兩個值不相等

示例:

復制代碼 代碼如下:

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

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

Assert.AreEqual(int a,int b,string message);
或者 Assert.XXX(int a,int b,string message);
其中第三個參數是條件不通過時輸出的信息,以便于錯誤的定位

對于double和decimal類型,這兩個方法還支持比較時的浮點誤差

例如以下代碼:

復制代碼 代碼如下:

double a = 1.1;
double b = 1.11;
double c = 0.1;
Assert.AreEqual(a, b, c);//通過判斷
c=0.01;
Assert.AreEqual(a, b, c);//不能通過判斷

2:類的判斷

AreSame:判斷兩個對象相等

AreNotSame:判斷兩個對象不相等

Contains:判斷是否是否某對象

示例:

復制代碼 代碼如下:

List<string> list = new List<string>();
list.Add("a");
list.Add("b");
Assert.Contains("a", list); //通過判斷
Assert.Contains("aa", list); //不能通過判斷


3:條件判斷

IsTrue:判斷條件為真

True:同上

IsFalse:判斷條件為假

False:同上

IsNull:判斷是否為空

Null:同上

IsNotNull:判斷不為空間

NotNull:同上

IsNaN:判斷數值是Nan

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

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

示例:

復制代碼 代碼如下:

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

4:比較判斷

Greater:大于

GreaterOrEqual:大于等于

Less:小于

LessOrEqual:小于大于

示例:

復制代碼 代碼如下:

int a = 100;
Assert.Greater(a, 99);
Assert.GreaterOrEqual(a, 100);

5:類型判斷

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

例如:

復制代碼 代碼如下:

public class Person
{
    public string name {set;get;}
}

Person p = new Person();
p.name = "a";
Assert.IsInstanceOf(typeof(Person), p);//通過判斷
Assert.IsInstanceOf(typeof(System.String), p);//不能通過判斷


 

6:異常判斷

Throws:應該拋出某類型的異常

DoesNotThrow:不應該拋出某類型的異常

7:其它常用的方法

Pass:強行讓測試通過

Fail:強行讓測試失敗

Ignore:忽略該測試方法

Inconclusive:未驗證該測試

二:StringAssert類

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

StringAssert.Contains:是否包含子串

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

StringAssert.EndsWith:是否以某子串結尾

StringAssert.AreEqualIgnoringCase:兩個字符串是否在不區分大小寫時相等

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

示例:

復制代碼 代碼如下:

string s1 = "abc";

StringAssert.Contains("b", s1);
StringAssert.StartsWith("a", s1);
StringAssert.EndsWith("c", s1);

string s2 = "aBc";
StringAssert.AreEqualIgnoringCase(s1, s2);

StringAssert.IsMatch("[a|book]", "123");



三:CollectionAssert類

AllItemsAreInstancesOfType:集合中的各項是否是某某類型的實例

AllItemsAreNotNull:集合中的各項均不為空

AllItemsAreUnique:集合中的各項唯一

AreEqual:兩個集合相等

AreEquivalent:兩個集合相當

AreNotEqual:兩個集合不相等

AreNotEquivalent:兩個集合不相當

DoesNotContain:集合中不包含某對象

IsSubsetOf:一個集合是另外一個集合的子集

IsNotSubsetOf:一個集合不是另外一個集合的子集

IsEmpty:集合為空

IsNotEmpty:集合不為空

IsOrdered:集合的各項已經排序

示例:

復制代碼 代碼如下:

List<int> a = new List<int>();
List<int> b = new List<int>();

CollectionAssert.IsEmpty(a);

for (int i = 1; i <= 10; i++)
{
    a.Add(i);
    b.Add(i);
}

CollectionAssert.AreEqual(a, b);
CollectionAssert.IsOrdered(a);

b.Remove(1);
CollectionAssert.IsSubsetOf(b, a);

CollectionAssert.AreEqual(a, b);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久伊人精品天天| 亚洲精品美女久久| 色婷婷av一区二区三区久久| 欧美日韩免费区域视频在线观看| 国产一区二区三区丝袜| 亚洲精品欧美一区二区三区| 久久久久女教师免费一区| 亚洲成人精品视频| 亚洲视频在线观看网站| 欧美一级视频在线观看| 日韩中文字幕精品视频| 久久久久久国产精品| 国产精品视频一区二区三区四| www.亚洲成人| 欧美丝袜美女中出在线| 91在线视频一区| 国产精品丝袜视频| 国产精品白嫩初高中害羞小美女| 国内成人精品视频| 日韩在线激情视频| 欧美一级片久久久久久久| 日韩精品在线视频观看| 国产精品久久久久久久久借妻| 精品视频在线导航| 高清日韩电视剧大全免费播放在线观看| 精品免费在线视频| 国产精品视频免费观看www| 狠狠干狠狠久久| 97视频在线观看视频免费视频| 欧美日韩精品在线| 欧美成人激情图片网| 日韩成人xxxx| 成人黄色在线观看| 最近2019好看的中文字幕免费| 97免费中文视频在线观看| 国产日韩欧美电影在线观看| 中文字幕亚洲国产| 91久久久国产精品| 亚洲精品av在线| 精品亚洲国产成av人片传媒| 日本久久精品视频| 欧美老少做受xxxx高潮| 奇门遁甲1982国语版免费观看高清| 成人欧美一区二区三区在线| 91超碰中文字幕久久精品| 国产日韩欧美91| 97视频com| 久久久999精品免费| 美女啪啪无遮挡免费久久网站| 久久久久久综合网天天| 日韩高清人体午夜| 日韩成人在线视频| 欧美在线观看视频| 色综合久久久久久中文网| www.亚洲一区| 欧美中文字幕第一页| 色婷婷综合成人| 亚洲大胆人体视频| 精品亚洲va在线va天堂资源站| 欧美激情喷水视频| 日韩欧美在线播放| 久久久久久亚洲精品中文字幕| 国产免费一区二区三区在线能观看| 亚洲欧美一区二区三区四区| 亚洲精品福利免费在线观看| 日韩av电影中文字幕| 亚洲精品国产综合久久| 日韩av电影在线网| 国产日韩精品视频| 色先锋资源久久综合5566| 午夜免费在线观看精品视频| 欧美另类精品xxxx孕妇| 欧美人在线观看| 国产亚洲a∨片在线观看| 欧美成人午夜激情在线| 欧美色欧美亚洲高清在线视频| 亚洲国产成人精品女人久久久| 亚洲成人av片| 欧美日韩一区二区三区| 国产91久久婷婷一区二区| 欧美在线一区二区视频| 欧美在线性爱视频| 国产精品自拍网| 人九九综合九九宗合| 97婷婷大伊香蕉精品视频| 欧美激情综合亚洲一二区| 亚洲欧洲国产精品| 亚洲天堂av在线免费| 91av在线网站| 91影院在线免费观看视频| 国产精品稀缺呦系列在线| 亚洲欧美综合精品久久成人| 欧美极品欧美精品欧美视频| 亚洲石原莉奈一区二区在线观看| 久久91亚洲精品中文字幕奶水| 深夜福利国产精品| 亚洲乱亚洲乱妇无码| 日韩在线不卡视频| 日韩精品在线第一页| 久久久在线免费观看| 中文字幕视频一区二区在线有码| 中文字幕亚洲专区| 久久夜色精品国产欧美乱| 国产精品久久一区主播| 亚洲精品久久久久久久久| 久久国产精品网站| 国内精久久久久久久久久人| 亚洲女人被黑人巨大进入| 国产精品免费视频久久久| 亚洲香蕉av在线一区二区三区| 尤物精品国产第一福利三区| 26uuu亚洲国产精品| 97香蕉久久超级碰碰高清版| 97精品久久久| 欧美极品欧美精品欧美视频| 日韩视频亚洲视频| 亚洲欧美综合另类中字| 色爱av美腿丝袜综合粉嫩av| 久久福利视频网| 青青草国产精品一区二区| 在线观看视频亚洲| 国产日韩在线观看av| 2019国产精品自在线拍国产不卡| 欧美极品欧美精品欧美视频| 日韩av电影免费观看高清| 国产精品96久久久久久又黄又硬| 日韩欧美在线第一页| 国产乱人伦真实精品视频| 热99精品里视频精品| 91超碰caoporn97人人| 国产在线观看一区二区三区| 欧美视频精品一区| 成人xxxxx| 国产日韩精品入口| 在线观看免费高清视频97| 97视频com| 亚洲人精选亚洲人成在线| 国产成人综合精品| 欧美激情精品久久久久久| 青青草原一区二区| 亚洲一区二区三区在线免费观看| 欧美日韩亚洲精品内裤| 精品国产区一区二区三区在线观看| 亚洲毛片在线免费观看| 最近2019年手机中文字幕| 91热福利电影| 日本免费一区二区三区视频观看| 欧美日韩免费在线| 91精品国产高清自在线| 97视频在线免费观看| 亚洲国产高清高潮精品美女| 亚洲成人久久网| 国产日产欧美精品| 成人xxxxx| 亚洲精品国产精品久久清纯直播| 欧美精品第一页在线播放| 91视频-88av| 在线观看视频亚洲| 亚洲国产欧美一区二区丝袜黑人| 午夜精品免费视频| 国产精品成人久久久久| 少妇av一区二区三区| 国产国语videosex另类| 国产在线精品播放|