您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > Nunit
NUnit學(xué)習(xí)筆記
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/20 15:10:20 ] 推薦標(biāo)簽:

 這里Init和Dispose方法沒(méi)什么好說(shuō)的,是執(zhí)行了對(duì)book對(duì)象的初始化和清理,不過(guò)testId和testName需要說(shuō)明一下。前者是在對(duì)book的id屬性進(jìn)行測(cè)試,首先賦值為”001”,然后使用Assert的AreEqual方法查看id屬性中存放的值是否是期待的值,由于我的期待值也是”001”,所以執(zhí)行后這個(gè)用例應(yīng)該是成功的;后者則是對(duì)book的name屬性進(jìn)行測(cè)試,也是首先賦值為”ASP”,然后使用Assert的AreEqual方法查看其值是否是期待的,由于我特意將期待值設(shè)定為根本不可能的”JSP”,因此這個(gè)用例執(zhí)行后會(huì)出現(xiàn)一個(gè)錯(cuò)誤。
    下面簡(jiǎn)單介紹一下靜態(tài)類(lèi)NUnit.Framework.Assert。該類(lèi)主要包含20個(gè)方法:
    1.AreEqual()和AreNotEqual(),各18個(gè)重載,用來(lái)查看兩個(gè)對(duì)象的值是否相等或不等,與對(duì)象比較中使用的Equals()方法類(lèi)似。
    2.AreSame()和AreNotSame(),各3個(gè)重載,用來(lái)比較兩個(gè)對(duì)象的引用是否相等或不等,類(lèi)似于通過(guò)“Is”或“==”比較兩個(gè)對(duì)象。
    3.Contains(),3個(gè)重載,用來(lái)查看對(duì)象是否在集合中,集合類(lèi)型應(yīng)與System.Collections.IList兼容。示例:
VB代碼:
Dim o As New Object
Dim al As New ArrayList
al.Add(o)
Assert.Contains(o, al)
C#代碼:
object o = new object();
ArrayList al = new ArrayList();
al.Add(o);
Assert.Contains(o, al);
J#代碼:
Object o = new Object();
ArrayList al = new ArrayList();
al.Add(o);
Assert.Contains(o, al);
4.Greater()和Less(),各18個(gè)重載,用來(lái)比較兩個(gè)數(shù)值的大小,前者相當(dāng)于大于號(hào)(>),后者相當(dāng)于小于號(hào)(<)。
5.IsInstanceOfType()和IsNotInstanceOfType(),各3個(gè)重載,用來(lái)判斷對(duì)象是否兼容于指定類(lèi)型。示例:
VB代碼:
Dim t As Type = New Object().GetType
Dim s As String = ""
Assert.IsInstanceOfType(t, s)
C#代碼:
Type t = new object().GetType();
tring s = "";
Assert.IsInstanceOfType(t, s);
J#代碼:
Type t = new Object().GetType();
String s = "";
Assert.IsInstanceOfType(t, s);
由于Object是.net中所有類(lèi)型的基類(lèi),String類(lèi)型兼容于Object,因此這個(gè)示例是能夠運(yùn)行通過(guò)的。而下邊這個(gè)示例運(yùn)行將是失敗的:
    VB代碼:
        Dim t As Type = New ArrayList().GetType
Dim s As String = ""
Assert.IsInstanceOfType(t, s)
    C#代碼:
        Type t = new ArrayList().GetType();
string s = "";
Assert.IsInstanceOfType(t, s);
J#代碼:
        Type t = new ArrayList().GetType();
        String s = "";
        Assert.IsInstanceOfType(t, s);
6.IsAssignableFrom()和IsNotAssignableFrom(),各3個(gè)重載,用來(lái)判斷對(duì)象是否是指定類(lèi)型的實(shí)例。示例:
VB代碼:
Dim t As Type = New Object().GetType
Dim s As String = ""
Assert.IsAssignableFrom(t, s)
C#代碼:
Type t = new object().GetType();
string s = "";
Assert.IsAssignableFrom(t, s);
J#代碼:
Type t = new Object().GetType();
String s = "";
Assert.IsAssignableFrom(t, s);
這個(gè)示例與之前的示例是一樣的,但由于字符串s不是Object類(lèi)型的,因此無(wú)法運(yùn)行通過(guò)。而下邊這個(gè)實(shí)例可以運(yùn)行通過(guò):
    VB代碼:
Dim t As Type = "".GetType
Dim s As String = ""
Assert.IsAssignableFrom(t, s)
C#代碼:
Type t = "".GetType();
string s = "";
Assert.IsAssignableFrom(t, s);
J#代碼:
Type t = "".GetType();
String s = "";
Assert.IsAssignableFrom(t, s);
7.IsFalse()和IsTrue(),各3個(gè)重載,用來(lái)查看變量是是否為false或true,如果IsFalse()查看的變量的值是false則測(cè)試成功,如果是true則失敗,IsTrue()與之相反。
    8.IsNull()和IsNotNull(),各3個(gè)重載,用來(lái)查看對(duì)象是否為空和不為空。
    9.IsEmpty()和IsNotEmpty(),各6個(gè)重載,用來(lái)判斷字符串或集合是否為空串或沒(méi)有元素,其中集合類(lèi)型應(yīng)與ICollection兼容。
    10.IsNaN(),3個(gè)重載,用來(lái)判斷指定的值是否不是數(shù)字。
    11.Fail(),3個(gè)重載,意為失敗,用來(lái)拋出錯(cuò)誤。我個(gè)人認(rèn)為有兩個(gè)用途:首先是在測(cè)試驅(qū)動(dòng)開(kāi)發(fā)中,由于測(cè)試用例都是在被測(cè)試的類(lèi)之前編寫(xiě),而寫(xiě)成時(shí)又不清楚其正確與否,此時(shí)可以使用Fail方法拋出錯(cuò)誤進(jìn)行模擬;其次是拋出意外的錯(cuò)誤,比如要測(cè)試的內(nèi)容是從數(shù)據(jù)庫(kù)中讀取的數(shù)據(jù)是否正確,而導(dǎo)致錯(cuò)誤的原因卻是數(shù)據(jù)庫(kù)連接失敗。
    12.Ignore(),3個(gè)重載,意為忽略,用來(lái)忽略后續(xù)代碼的執(zhí)行,用途可以參考Fail()方法。
此外,NUnit還提供了一個(gè)專(zhuān)用于字符串的靜態(tài)類(lèi)NUnit.Framework.StringAssert,該類(lèi)主要包含4個(gè)方法:
    1.Contains(),3個(gè)重載,用來(lái)查看指定的第二個(gè)字符串中是否包含了第一個(gè)字符串。
2.StartsWith ()和EndsWith (),各3個(gè)重載,分別用來(lái)查看指定的第一個(gè)字符串是否位于第二個(gè)字符串的開(kāi)頭和結(jié)尾。
    3.AreEqualIgnoringCase(),3個(gè)重載,用來(lái)比較兩個(gè)字符串是否相等。
五、運(yùn)行NUnit
下面請(qǐng)先點(diǎn)擊菜單“調(diào)試”->“啟動(dòng)調(diào)試”或按F5鍵運(yùn)行程序。等等,main函數(shù)里頭好象一句代碼也沒(méi)寫(xiě)過(guò)呢吧?沒(méi)錯(cuò),一句也沒(méi)寫(xiě),不過(guò)你照做可以了。在看到黑屏一閃之后,程序生成完畢。
    程序生成后,可以使用NUnit進(jìn)行測(cè)試了。NUnit有兩種界面,一種是命令行的,一種是可視化的,這里使用的是后者。點(diǎn)擊“開(kāi)始”菜單->“所有程序”->“NUnit-Net-2.0 2.2.10”->“NUnit-Net-2.0 2.2.10”,打開(kāi)NUnit的可視化界面:

 點(diǎn)擊菜單“File”->“Open”,打開(kāi)剛才運(yùn)行生成的可執(zhí)行文件:

 此時(shí)可以使用BookTest類(lèi)對(duì)Book類(lèi)進(jìn)行測(cè)試了。請(qǐng)首先選擇testId,點(diǎn)擊“Run”按鈕,運(yùn)行結(jié)果如下圖:

上一頁(yè)1234567下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd