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

下面簡(jiǎn)單介紹一下上邊用到的靜態(tài)類NUnit.Framework.Assert。該類主要包含20個(gè)方法:

1.AreEqual()和AreNotEqual()方法,用來查看兩個(gè)對(duì)象的值是否相等或不等,與對(duì)象比較中使用的Equals()方法類似。

2.AreSame()和AreNotSame()方法,用來比較兩個(gè)對(duì)象的引用是否相等或不等,類似于通過“Is”或“==”比較兩個(gè)對(duì)象。

3.Contains()方法,用來查看對(duì)象是否在集合中,集合類型應(yīng)與System.Collections.IList兼容。示例:
  Dim o As New Object
  Dim al As New ArrayList
  al.Add(o)
  Assert.Contains(o, al)

4.Greater()和Less()方法,用來比較兩個(gè)數(shù)值的大小,前者相當(dāng)于大于號(hào)(>),后者相當(dāng)于小于號(hào)(<)。

5.IsInstanceOfType()和IsNotInstanceOfType()方法,用來判斷對(duì)象是否兼容于指定類型。示例:
  Dim t As Type = New Object().GetType
  Dim s As String = ""
  Assert.IsInstanceOfType(t, s)
  由于Object是.net中所有類型的基類,String類型兼容于Object,因此這個(gè)示例是能夠運(yùn)行通過的。而下邊這個(gè)示例運(yùn)行將是失敗的:
  Dim t As Type = New ArrayList().GetType
  Dim s As String = ""
  Assert.IsInstanceOfType(t, s)

6.IsAssignableFrom()和IsNotAssignableFrom()方法,用來判斷對(duì)象是否是指定類型的實(shí)例。示例:
  Dim t As Type = New Object().GetType
  Dim s As String = ""
  Assert.IsAssignableFrom(t, s)

這個(gè)示例與之前的示例是一樣的,但由于字符串s不是Object類型的,因此無法運(yùn)行通過。而下邊這個(gè)實(shí)例可以運(yùn)行通過:
  Dim t As Type = New String("").GetType
  Dim s As String = ""
  Assert.IsAssignableFrom(t, s)

7.IsFalse()和IsTrue()方法,用來查看變量是是否為false或true,如果IsFalse()查看的變量的值是false則測(cè)試成功,如果是true則失敗,IsTrue()與之相反。

8.IsNull()和IsNotNull()方法,用來查看對(duì)象是否為空和不為空。

9.IsEmpty()和IsNotEmpty()方法,用來判斷字符串或集合是否為空串或沒有元素,其中集合類型應(yīng)與ICollection兼容。

10.IsNaN()方法,用來判斷指定的值是否不是數(shù)字。

11.Fail()方法,意為失敗,用來拋出錯(cuò)誤。我個(gè)人認(rèn)為有兩個(gè)用途:首先是在測(cè)試驅(qū)動(dòng)開發(fā)中,由于測(cè)試用例都是在被測(cè)試的類之前編寫,而寫成時(shí)又不清楚其正確與否,此時(shí)可以使用Fail方法拋出錯(cuò)誤進(jìn)行模擬;其次是拋出意外的錯(cuò)誤,比如要測(cè)試的內(nèi)容是從數(shù)據(jù)庫中讀取的數(shù)據(jù)是否正確,而導(dǎo)致錯(cuò)誤的原因卻是數(shù)據(jù)庫連接失敗。

12.Ignore()方法,意為忽略,用來忽略后續(xù)代碼的執(zhí)行,用途可以參考Fail()方法。
此外,NUnit還提供了一個(gè)專用于字符串的靜態(tài)類NUnit.Framework. StringAssert,該類主要包含4個(gè)方法:

    Contains()方法,用來查看指定的第二個(gè)字符串中是否包含了第一個(gè)字符串。
    StartsWith ()和EndsWith ()方法,分別用來查看指定的第一個(gè)字符串是否位于第二個(gè)字符串的開頭和結(jié)尾。
    AreEqualIgnoringCase()方法,用來比較兩個(gè)字符串是否相等。

下面再看一下C#代碼:
  using System;
  using System.Collections.Generic;
  using System.Text;
  using NUnit.Framework;

  namespace NUnitCS
  {
    [TestFixture]
    public class BookTest
    {
      Book book = null;

      [SetUp]
      public void Init()
      {
        Console.WriteLine("測(cè)試開始!");
        book = new Book();
        Console.WriteLine("book對(duì)象被初始化!");
      }

      [Test]
      public void testId()
      {
        book.id = "001"; //設(shè)置id屬性的值為
        //使用Assert查看id屬性的值是否為

        Assert.AreEqual("001", book.id);
        Console.WriteLine("id屬性被測(cè)試!");
      }

      [Test]
      public void testName()
      {
        book.name = "ASP"; //設(shè)置name屬性的值為ASP
        //使用Assert查看name屬性的值是否為JSP,這是個(gè)必然出現(xiàn)錯(cuò)誤的測(cè)試
        Assert.AreEqual("JSP", book.name);
        Console.WriteLine("name屬性被測(cè)試!");
      }

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