• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 掌握單元測試工具Nunit教程[1]

    發表于:2010-03-30來源:作者:點擊數: 標簽:工具單元nunitNUNITNUnit
    掌握單元 測試工具 Nunit 教程[1] 單元測試代碼 過程 測試代碼必須做以下幾件事情: 準備測試所需的條件 調用要測試的方法 驗證被測方法的行為和期望的行為是否一致 完成后清理各種資源 為了使用NUnit框架,需要做這些工作: 1.使用using聲明引用必要的NUnit

      掌握單元測試工具Nunit教程[1]     單元測試代碼 

        過程

      測試代碼必須做以下幾件事情:

      準備測試所需的條件

      調用要測試的方法

      驗證被測方法的行為和期望的行為是否一致

      完成后清理各種資源

      為了使用NUnit框架,需要做這些工作:

      1.使用using聲明引用必要的NUnit類(并添加一個指向NUnitDll的引用)

      2.定義一個測試類,必須是Public的、包換一個public的沒有參數的構造函數,并且在類定義上加上[TestFixture]attribute標記

      3.在測試類中包含用[Test]attribute標記的方法。

      特性

      在使用NUnit框架時,除了上面提到的[TestFixture]和[Test]特性外,還有一些有用的特性。靈活使用這些特性,將有助于提高測試代碼開發的效率。

      1. Per-method的Setup和Teardown

      [Setup]:用此Attribute指定的方法用于環境的建立,NUnit在調用每個[Test]方法之前,將調用此特性標記的方法

      [Teardown]:和[Setup]一樣,只是調用的時機是在每個[Test]方法完成后,用于環境的清理。

      2. Per-class Setup和Per-class Teardown

      [TestFixtureSetup]以及[TestFixtureTearDown]特性和上述的[Setup]以及[Teardown]類似,只是其作用于整個[TestFixture]類而已??梢允褂眠@兩個特性標記的方法對整個test class設置和清理環境。

      3. 使用Categories分類

      [Category(“分類名”)]用于指定某個測試方法所屬的“類型”。用此特性將各個測試方法分類后,可以在NUnit環境中指定需要執行的類型。

      可以將此特性寫在[Test]特性一起,如:

      [Test, Category(“test_0001”)]

      也可以分開兩行:

      [Test]

      [Category(“test_0001”)]

      Category還有一個Explicit屬性,可以顯式排除該Category的運行(除非在NUnit GUI中指定),寫法如下:

      [Category(“test_0001”, Explicit=true)]

      4.測試預期的異常:ExpectedException

      對測試而言有兩種異常:從測試代碼拋出的異常;由于某個模塊錯誤而引發的異常.

      第二種異常會在NUnit中捕獲并作測試失敗處理。而有時我們需要測試被測試方法是否拋出了期望的異常(例如,特意傳入的錯誤參數),就可以用以下方法。

      [ExpectedException(typeof(SomeException))]或:[Test,ExpectedException(typeof(SomeException))]

      注意,一旦期望的異常拋出了,剩余的代碼就會被跳過。軟件測試

      5.臨時忽略一些測試:Ignore

      當你寫了一些測試代碼,但并不打算馬上執行時,可以使用Ignore特性。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>