我們注意到的第一件事情就是此類包含一個[TestFixture]屬性與之關聯-這是一種描述類包含測試代碼的方法(此屬性可以被繼承)。此類必須為public,并且對于其超類沒有任何限制。此類也必須有個一缺省的構造子。
此類包含一個唯一的方法-TransferFunds,而且有一個[Test]屬性與之關聯-它標志了該方法是一個測試方法。測試方法必須返回void,并且不能帶有參數。在我們的測試方法中,我們對一個需要測試的對象進行了普通的初始化,執行以測試的業務方法,并且檢查了業務對象的狀態。Assert類定義了一組方法,這些方法用來檢查前置條件,在我們的例子里,我們使用AreEqual方法保證在轉帳之后,2個帳戶都有正確的余額(本方法有許多重載方法,在本示例中的版本有如下參數:第一個參數是一個期望值,第二個參數是實際值)。
編譯并運行此實例。假設你已經將你的測試代碼編譯為一個bank.dll。啟動NUnit GUI(安裝文件會在桌面和“Program Files"上創建一個快捷方式)。在GUI啟動之后,選擇File->Open菜單,并指向bank.dll所在的路徑,在”Open“對話框打開選擇該文件。當bank.dll文件加載之后,你 會在左邊的面板上看到一個測試樹形結構 ,在右邊會有一組狀態。點擊Run按鈕,狀態條以及測試樹的TransferFunds節點會變紅-我們的測試失敗了!盓rror and Failures"面板顯示如下信息:TransferFunds : expected <250> but was <150> 而且,棧跟蹤面板會報告測試代碼中的失敗之處:at bank.AccountTest.TransferFunds() in C:\nunit\BankSampleTests\AccountTest.cs:line 17 。這正是我們期望的:測試失敗是因為我們并沒有實現TransferFunds方法,F在我們讓它工作吧。不要關閉此GUI,返回你的IDE并修復此代碼,讓你的TransferFunds方法如下:
public void TransferFunds(Account destination, float amount)
{
destination.Deposit(amount);
Withdraw(amount);
}
現在,重新編譯代碼,再一次點擊GUI上的按鈕-狀態條以及測試樹變綠了。(注意GUI是如何為您重新加載程序集的;我們會一直打開GUI,并在IDE中繼續編寫代碼,寫出更多的測試)。
讓我們在Account代碼里加入一些錯誤的檢查。我們為帳戶加入最小的余額,保證銀行可以繼續讓他們的錢可以支付最小額度的透支。在Account類里增加一個最小余額的屬性:
private float minimumBalance = 10.00F;
public float MinimumBalance
{
get{ return minimumBalance;}
}
文章來源于領測軟件測試網 http://www.kjueaiud.com/