• <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基本用法

    發布: 2009-4-21 17:51 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 67次 | 進入軟件測試論壇討論

    領測軟件測試網 1. 單元測試Unit Test開發者編寫的一小段代碼,用于檢驗被測代碼的一個很小的,很明確的功能是否正確。
      2. 單元測試的具體表現:用于判斷某個特定條件或場景下某個特定函數或方法的行為。
      3. 單元測試的目的:為了證明某段代碼的行為確實和開發者所期望的一致。
      4. 單元測試的核心內涵:這個簡單有效的技術就是為了令代碼變得更加完美。
      5. NUint中的斷言Assert類的靜態方法:
    1)AreEquals
    Assert.AreEqual(expected, actual[, string message])
    //expected:期望值(通常是硬編碼的);
    //actual:被測試代碼實際產生的值;
    //message:一個可選消息,將會在發生錯誤時報告這個消息。

      因計算機并不能精確地表示所有的浮點數,所以在比較浮點數時(float或double),需要指定一個額外的誤差參數。
    Assert.AreEqual(expected, actual, tolerance[, string message])
    //tolerance:指定的誤差,即只要精確到小數點后X位就足夠了。
    //例如:精確到小數點后4位
    Assert.AreEqual(0.66670.0/3.00.0001);

    2)IsNull
    Assert.IsNull(object[, string message])
    //是null
    Assert.IsNotNull(object[, string message])
    //非null

    3)AreSame
    Assert.AreSame(expected, actual[, string message])
    //驗證expected和actual兩個參數是否引用一個相同的對象。

    4)IsTrue
    Assert.IsTrue(bool condition [, string message])
    Assert.IsFalse(
    bool condition [, string message])

    5)Fail
    Assert.Fail([string message])
    //使測試立即失;這種斷言通常被用于標記某個不應該被到達的分支,但實際中不常用。

      6. 當有測試失敗時,無論如何都不能給原有代碼添加任何的新特性。
      7. NUnit的框架
      使用NUint框架的最小要求
     1using NUint.Framework;
     2[TestFixture]
     3public class TestSimple 
     4{
     5    [Test]
     6    public void TestMethod() 
     7    {
     8        Assert.AreEqual(24/2);
     9    }

    10}


      1)需要NUint.Framework的命名空間,項目中需要引用NUint.dll;
      2)每個包含測試的類都必須帶TestFixture屬性標記,且這個類必須是public的。
      3)測試類包含的所有帶Test屬性標記的public方法都會被NUint自動執行。

    8.NUint的分類Categories
      用Category的概念提供了標記和運行一個個單獨的測試和TestFixture的簡單方法。
      一個Category是自己定義的一個名字?砂巡煌臏y試方法關聯到一個或多個Category,然后運行測試的時候選擇自己想要運行的Category。
      如,實際中有些測試只需幾秒就能完成,而有些則須長時間才能完成,為了避免每次都執行長時間的測試,可使用分類來標記它們,然后運行測試指定需要運行的Category。

     1[Test]
     2[Category("Short")]
     3public void ShortTest()
     4{
     5    //do some tests.
     6}

     7[Test, Category("Long")]  //兩種屬性的寫法就可以
     8public void LondTest()
     9{
    10    //do some tests.
    11}

      同樣,有時需要:當沒有明確選擇任何Category時,希望某些Category的測試能夠被運行;而當顯示選擇一些Category時,則只有被選擇的Category才會被執行。
      則需在Category屬性的Explicit設置為真。
    如:
    [Category("Special", Explicit=true)]
      在運行GUI中沒有指定任何Category情況下,上述設置會使該Category不會被運行測試。

      默認情況下,即一個方法沒有指定任何Category時,相當于沒有顯示指定Explicit(即Explicit=false),這類方法都會被執行。

      除方法可設置Category,連TestFixture都可以設置Category,如,對于一些整個TestFixture都測試時間都很長的,就可將它設置為[Category"Long")],這樣就沒有必要重復標記每個測試方法了。

      9.每個測試的運行都應該是互相獨立的;可在任何時候,任意順序運行每個單獨的測試。
      10.NUint中Per-method :Setup與Teardown
    [SetUp] //用于測試環境的建立
    public void MySetup() {
        
    //do something.
    }


    [TearDown]  
    //清除測試環境
    public void MyTeardown() {
         
    //do something.
    }
      在每個[Test]方法之前,都會調用[SetUp]方法;并在每個[Test]方法完成之后,都會調用[TearDown]方法。

      11.NUint中的Per-class:TestFixtureSetUp和TestFixtureTearDown
      這兩個方法對整個Test Class設置一些環境,及所有測試方法都執行完后做一些清理工作。
      當第一個[Test]方法運行前,會調用[TestFixtureSetUp]方法,當所有[Test]方法都執行后,會調用[TestFixtureTearDown]方法。

    12.測試預期的異常
    //如測試是否拋出ArgumentException
    [Test, ExpectedException(typeof(ArgumentException))]
    public void TestForException() 
    {
        Do.GetSomething(
    null);
        
    //Shouldn's get to here;
    }

    若測試方法預期地拋出ArgumentException異常,測試將會通過;若沒有拋出異常,則測試將會失敗。
    一旦異常拋出了,測試方法中剩余的代碼都不會被執行。

    13. 忽略指定的測試方法
    [Test, Ignore("Not run this method")]
    public void TestMethod()
    {
             
    //do something
    }

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: nunit NUnit Nunit NUNIT 單元 工具 用法


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>