您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > Nunit
NUnit 快速入門
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/1/15 9:16:10 ] 推薦標(biāo)簽:NUnit 測(cè)試 開源

我們注意到的第一件事情是此類包含一個(gè)[TestFixture]屬性與之關(guān)聯(lián)-這是一種描述類包含測(cè)試代碼的方法(此屬性可以被繼承)。此類必須為public,并且對(duì)于其超類沒(méi)有任何限制。此類也必須有個(gè)一缺省的構(gòu)造子。

此類包含一個(gè)的方法-TransferFunds,而且有一個(gè)[Test]屬性與之關(guān)聯(lián)-它標(biāo)志了該方法是一個(gè)測(cè)試方法。測(cè)試方法必須返回void,并且不能帶有參數(shù)。在我們的測(cè)試方法中,我們對(duì)一個(gè)需要測(cè)試的對(duì)象進(jìn)行了普通的初始化,執(zhí)行以測(cè)試的業(yè)務(wù)方法,并且檢查了業(yè)務(wù)對(duì)象的狀態(tài)。Assert類定義了一組方法,這些方法用來(lái)檢查前置條件,在我們的例子里,我們使用AreEqual方法保證在轉(zhuǎn)帳之后,2個(gè)帳戶都有正確的余額(本方法有許多重載方法,在本示例中的版本有如下參數(shù):第一個(gè)參數(shù)是一個(gè)期望值,第二個(gè)參數(shù)是實(shí)際值)。

編譯并運(yùn)行此實(shí)例。假設(shè)你已經(jīng)將你的測(cè)試代碼編譯為一個(gè)bank.dll。啟動(dòng)NUnit GUI(安裝文件會(huì)在桌面和“Program Files"上創(chuàng)建一個(gè)快捷方式)。在GUI啟動(dòng)之后,選擇File->Open菜單,并指向bank.dll所在的路徑,在”Open“對(duì)話框打開選擇該文件。當(dāng)bank.dll文件加載之后,你 會(huì)在左邊的面板上看到一個(gè)測(cè)試樹形結(jié)構(gòu) ,在右邊會(huì)有一組狀態(tài)。點(diǎn)擊Run按鈕,狀態(tài)條以及測(cè)試樹的TransferFunds節(jié)點(diǎn)會(huì)變紅-我們的測(cè)試失敗了。”Error and Failures"面板顯示如下信息:

TransferFunds : expected <250> but was <150>

而且,棧跟蹤面板會(huì)報(bào)告測(cè)試代碼中的失敗之處:

at bank.AccountTest.TransferFunds() in C: unitBankSampleTestsAccountTest.cs:line 17

這正是我們期望的:測(cè)試失敗是因?yàn)槲覀儾](méi)有實(shí)現(xiàn)TransferFunds方法,F(xiàn)在我們讓它工作吧。不要關(guān)閉此GUI,返回你的IDE并修復(fù)此代碼,讓你的TransferFunds方法如下:

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

現(xiàn)在,重新編譯代碼,再一次點(diǎn)擊GUI上的按鈕-狀態(tài)條以及測(cè)試樹變綠了。(注意GUI是如何為您重新加載程序集的;我們會(huì)一直打開GUI,并在IDE中繼續(xù)編寫代碼,寫出更多的測(cè)試)。

讓我們?cè)贏ccount代碼里加入一些錯(cuò)誤的檢查。我們?yōu)閹艏尤胄〉挠囝~,保證銀行可以繼續(xù)讓他們的錢可以支付小額度的透支。在Account類里增加一個(gè)小余額的屬性:

private float minimumBalance = 10.00F;
public float MinimumBalance
{
 get{ return minimumBalance;}
}

我們使用一個(gè)異常來(lái)描繪一個(gè)透支:

namespace bank
{
  using System;
  public class InsufficientFundsException : ApplicationException
  {
  }
}

在AccountTest類里加入一個(gè)新的方法:

[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);
}

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