您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > Nunit
在VS2005利用NUnit進(jìn)行測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/21 15:28:56 ] 推薦標(biāo)簽:

編譯項(xiàng)目生成dll。我們可以在NUnit主界面上點(diǎn)擊[Project]->[Add Assembly...]來添加剛才編譯生成的dll,加載成功后界面如下所示:

  點(diǎn)擊界面上的[Run]按鈕可以開始測試了。注意這種方式下是測試所有的測試方法,如果我們只想測試某幾個(gè)方法,可以勾選方面前面的復(fù)選框(默認(rèn)情況下復(fù)選框不出現(xiàn),需要按照點(diǎn)擊[Tools]->[Setting]打開設(shè)置界面,然后點(diǎn)擊在[GUI]下面找到[Tree Display],勾選上“Show CheckBoxes”即可)。
  如果我們只是想單獨(dú)測試某個(gè)方法,那更簡單了——直接雙擊那個(gè)測試方法即可。
  有時(shí)候我們進(jìn)行測試時(shí)還會用到一些config文件里面的配置信息,如在app.config/web.config中保存數(shù)據(jù)庫連接字符串信息及其他的配置信息,為了能讓NUnit測試時(shí)能讀取app.config/web.config中保存的配置信息,我們需要對NUnit進(jìn)行配置。
  為了演示,我們制定以下信息:
  項(xiàng)目名稱:UnitTestDemo
  項(xiàng)目位置:D:BlogCodeUnitTestDemo
  項(xiàng)目編譯模式(Debug/Release):Debug
  為了演示剛才的如何對config文件中保存的數(shù)據(jù)進(jìn)行測試,我們在剛才的代碼基礎(chǔ)上編寫了三個(gè)測試用例,代碼如下:
[csharp] view plaincopy

    [Test] 
    public void Test0_51CTOBlog() 
    { 
        StringAssert.AreEqualIgnoringCase(ConfigurationManager.AppSettings["51ctoBlog"], "http://zhoufoxcn.blog.51cto.com"); 
    } 
     
    [Test] 
    public void Test0_CSDNBlog() 
    { 
        StringAssert.AreEqualIgnoringCase(ConfigurationManager.AppSettings["CSDNBlog"], "http://blog.csdn.net/zhoufoxcn"); 
    } 
     
    [Test] 
    public void Test0_SinaWeiBo() 
    { 
        StringAssert.AreEqualIgnoringCase(ConfigurationManager.AppSettings["SinaWeiBo"], "http://weibo.com/zhoufoxcn"); 
    } 

  同時(shí)在app.config文件的appSettings節(jié)點(diǎn)增加以下數(shù)據(jù):
[csharp] view plaincopy

    <appSettings> 
        <add key="51ctoBlog" value="http://zhoufoxcn.blog.51cto.com"/> 
        <add key="CSDNBlog" value="http://blog.csdn.net/zhoufoxcn"/> 
        <add key="SinaWeiBo" value="http://weibo.com/zhoufoxcn"/> 
    </appSettings> 

  如果不在NUnit上做任何設(shè)置,我們會得到錯(cuò)誤的結(jié)果,如下圖所示:

  這時(shí),我們可以按照如下步驟配置,點(diǎn)擊[Project]-[Edit...]打開如下界面:

  在上圖的界面中設(shè)置ApplicationBase為當(dāng)前要測試的dll所在的路徑,本例中為:D:BlogCodeUnitTestDemoinDebug(注意如果復(fù)制全路徑到文本框中NUnit會自動(dòng)更改為相對路徑),因?yàn)楫?dāng)前項(xiàng)目是名為UnitTestDemo的類庫項(xiàng)目,所以對應(yīng)config文件名稱為UnitTestDemo.dll.config,將其填入Configuration File Name后面的文本框中,然后我們再次點(diǎn)擊[Run]按鈕會看到測試通過。
總結(jié)
  作為xUnit體系中的一員,NUnit確實(shí)給.Net開發(fā)人員進(jìn)行單元測試帶來了不少方便,在早期我們一直都是使用NUnit進(jìn)行單元測試的。但是也存在著一些不足之處,比如:1.在xUnit體系中的JUnit是在測試每個(gè)方法時(shí)都是新生成一個(gè)實(shí)例,而在NUnit中確實(shí)一個(gè)TestFixture只會生成一個(gè)實(shí)例,這樣一來如果對要包含單元測試類中的實(shí)例數(shù)據(jù)進(jìn)行更改會可能會影響到其它的測試方法(像JUnit那樣每次都生成一個(gè)實(shí)例則不會產(chǎn)生這種情況)。2.早期大多數(shù)人以為像JUnit中一樣,[SetUp]、[TearDown]只會在所有測試前、后分別執(zhí)行一次,實(shí)際情況是在每個(gè)測試前、后都會執(zhí)行一次,為了達(dá)到JUnit中[SetUp]、[TearDown]這樣的效果,只能新增TestFixtureSetUp、TestFixtureTearDown屬性。除此之外,還存在一些缺點(diǎn)和不足。
  所以本篇只是簡單介紹了NUnit的一些用法,雖然NUnit提供了相當(dāng)多的斷言及Attribute,但實(shí)際用到的并不多,在這里介紹它是為介紹另一個(gè).NET單元測試工具作鋪墊。

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