亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > Nunit
NUnit入門
作者:網絡轉載 發布時間:[ 2012/12/21 15:18:21 ] 推薦標簽:

原著:NUnit v2.1
原文:NUnit文檔之QuickStart.doc
翻譯:lover_P
--------------------------------------------------------------------------------
[譯者序]
    縱觀軟件的開發,測試已經日益成為軟件開發過程中的重要環節,通常一個軟件的開發周期中測試要占到一半時間甚至更多。而在測試過程中,單元測試更是萬里長征第一步,單元測試進行得是否完善,直接影響到后期集成測試的效率。進行單元測試,有許多軟件可以自動完成,NUnit是其中之一。這是一款與JUnit齊名的,同屬于xUnit家族的單元測試軟件(在http://www.NUnit.org我們可以免費得到這款軟件)。

[正文]

    讓我們從一個簡單的例子開始。假設我們正在編寫一個銀行應用程序,而我們有一個這一領域的基本類——Aclearcase/" target="_blank" >ccount。Account支持存款、取款和資金轉帳。這個Account類看起來會是這個樣子:

namespace bank {
    public class Account {
        private float balance;

        public void Deposit(float amount) {
            balance += amount;
        }

        public void Withdraw(float amount) {
            balance -= amount;
        }

        public void TransferFunds(Account destination, float amount) {
        }

        public float Balance {
            get {
                return balance;
            }
        }
    }
}

    現在我們來為這個類寫一個測試——AccountTest。我們要測試的第一個類方法是TransferFunds。

namespace bank {
    using NUnit.Framework;

    [TestFixture]
    public class AccountTest {

        [Test]
        public void TransferFunds() {
            Account source = new Account();
            source.Deposit(200.00F);
            Account destination = new Account();
            destination.Deposit(150.00F);

            source.TransferFunds(destination, 100.00F);
            Assert.AreEqual(250.00F, destination.Balance);
            Assert.AreEqual(100.00F, source.Balance);
        }
    }
}

    首先要注意的是這個類關聯了一個[TestFixture]特性(attribute)——這表示這個類包含了測試代碼(這個特性可以被繼承)。這個類必須是公有的,但他的父類并不受限制。這個類還必須有一個默認構造函數。

    類中的一個方法——TransferFunds(),關聯了一個[Test]特性——這表示它是一個測試方法。測試方法的返回值必須為void并且不能帶有參數。在我們的測試方法中,我們對被測試的對象進行了一般的初始化,執行了被測試的方法并檢查了對象的狀態。Assert類定義了一組方法用于檢查給定的條件,在我們的例子中我們使用了AreEqual()方法來確保交易過后兩個賬戶都有正確的余額(這個方法有很多重載,我們在這個例子中使用的版本帶有兩個參數:第一個參數是我們的期望值,第二個參數是實際值)。

    編譯并運行這個例子。假設你已經將你的測試代碼編譯為bank.dll。打開NUint Gui(安裝程序會在你的桌面和“程序”菜單中建立一個快捷方式),打開GUI后,選擇File->Open菜單項,找到你的bank.dll并在“Open”對話框中選中它。bank.dll裝載后你會在左邊的面板中看到一個測試樹結構,還有右邊的一組狀態面板。單擊Run按鈕,狀態條和測試樹種的TransferFunds節點變成了紅色——我們的測試失敗了。“Errors and Failures”面板顯示如下消息——“TransferFunds: expected <250> but was <150>”,在它正下方的堆棧跟蹤面板報告了測試失敗的語句在代碼中的位置——“at bank.AccountTest.TransferFunds() in C: unitBankSampleTestsAccountTest.cs:line 17”

    這正是預期的結果,因為我們還未實現TransferFunds()方法。現在我們來搞定它。不要關閉GUI,回到你的IDE并修改代碼,使你的TransferFunds()方法看起來像這樣:

public void TransferFunds(Account destination, float amount) {
    destination.Deposit(amount);
    Withdraw(amount);
}

    現在重新編譯你的代碼并再次在GUI中點擊Run按鈕——狀態條和數節點變綠了。(注意GUI會自動地為你重新加載程序集;我們可以一直開著GUI而在IDE中繼續工作并寫更多的測試)。

    讓我們來為我們的Account的代碼添加一些錯誤檢測。為賬戶添加一個小余額限制,通過你的小透支保護費來維持它的持續運作。首先我們來為Account類添加一個小余額保護屬性:

private float minimumBalance = 10.00F;

public float MinimumBalance {
    get {
        return minimumBalance;
    }
}

    我們使用一個異常來指出透支:

namespace bank {
    using System;

    public class InsufficientFundsException : ApplicationException {
    }
}

    向我們的AccountTest類添加一個新的方法:

[Test]
[ExpectedException(typeof(InsufficientFundsException))]
public void TransferWithInsufficientFunds() {
    Account source = new Account();
    source.Deposit(200.00F);
    Account destination = new Account();
    destination.Deposit(150.00F);
    source.TransferFunds(destination, 300.00F);
}

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国产精品无码制服丝袜 | 操操操干干干 | 黄色网页在线免费观看 | 国产一级毛片午夜 | 日本一二区视频 | 久久久国产精品va麻豆 | 成年人免费在线视频网站 | 国产在线视频国产永久视频 | 精品国偷自产在线视频99 | h视频免费在线 | 人人爱国产 | 日批免费 | 国产一区二区免费视频 | 在线亚洲欧洲国产综合444 | 免费黄色大片视频 | 亚洲国产一级毛片 | 成人性动漫在线观看视频 | 免费看一级黄色大片 | 免费网站看av片 | 婷婷综合亚洲 | 欧美成a人片在线观看久 | 伊人网国产 | 青青草国产精品欧美成人 | 色天使色婷婷丁香久久综合 | 精品亚洲欧美高清不卡高清 | 午夜成年免费观看视频 | 有没有在线看片www 又www又黄又爽啪啪网站 | 久操视频在线播放 | 看黄a大片 免费 | zxfuil福利在线观看午夜 | 动漫成年美女黄漫网站小视频 | 天天干天天日天天射天天操毛片 | 国产成人精品视频2021 | 天天色啪 | 男女无遮挡毛片视频播放 | 国产一区欧美二区 | 国产综合色在线视频 | 欧美日韩亚洲国产综合 | 在线看片亚洲 | 在线天堂资源 | 伊人五月婷婷 |