單元測(cè)試對(duì)程序員來說是非常重要的一門技術(shù),但是在實(shí)際編程中卻往往被程序員所忽視。微軟的VS開發(fā)工具為我們提供了強(qiáng)大的單元測(cè)試環(huán)境,在VS當(dāng)中可以直接對(duì)類庫項(xiàng)目進(jìn)行測(cè)試,極大的方便了程序員的自我糾錯(cuò)能力。除了官方的解決方案之外,還有一種非常好的免費(fèi)開源的第三方測(cè)試工具,那就是NUnit。它是從Java中著名的JUnit單元測(cè)試框架移植過來,這個(gè)可以從官網(wǎng)中得到答案,http://www.nunit.org/。
在NUnit官網(wǎng)的下載頁面http://www.nunit.org/index.php?p=download,列出了其所有發(fā)布過的版本,當(dāng)前最新的版本號(hào)為2.6.3。
msi是安裝版的NUnit,而bin是文件版的,還有src是NUnit的源代碼以及doc是NUnit的幫助手冊(cè)。
建議專業(yè)用戶下載bin版本,即NUnit-2.6.3.zip。里面有綠色版的NUnit用戶界面程序,開發(fā)用的dll文件以及doc文檔手冊(cè)。
下載好zip包后,解壓到磁盤目錄下。
好,下面就正式演示使用NUnit進(jìn)行單元測(cè)試。
便于簡(jiǎn)單演示,我們用四則運(yùn)算來模擬測(cè)試的過程。
首先在VS2012當(dāng)中建立一個(gè)類庫項(xiàng)目,起名為NUnitTest,并建立一個(gè)四則運(yùn)算類Calculator。
namespace NUnitTest { public class Calculator { public static double Add(double a, double b) { return a + b; } public static double Sub(double a, double b) { return a - b; } public static double Mutiply(double a, double b) { return a * b; } public static double Divide(double a, double b) { return a / b; } } }
就是一個(gè)簡(jiǎn)單的加減乘除方法。
然后我們?cè)俳⒁粋€(gè)單元測(cè)試類UnitTest,用于進(jìn)行單元測(cè)試。
namespace NUnitTest { [TestFixture] public class UnitTest { public double NumA { get; set; } public double NumB { get; set; } [SetUp] public void SetUp() { NumA = 10; NumB = 20; } [Test] public void TestAdd() { double result = Calculator.Add(NumA, NumB); Assert.AreEqual(result, 30); } [Test] public void TestSub() { double result = Calculator.Sub(NumA, NumB); Assert.LessOrEqual(result, 0); } [Test] public void TestMutiply() { double result = Calculator.Mutiply(NumA, NumB); Assert.GreaterOrEqual(result, 200); } [Test] public void TestDivide() { double result = Calculator.Divide(NumA, NumB); Assert.IsTrue(0.5 == result); } } }
這里面在方法前都加了[Test]用于標(biāo)記該方法為單元測(cè)試方法,需要添加引用nunit.framework.dll文件。這個(gè)文件可以在下載好的zip包中的NUnit-2.6.3\bin\framework目錄找到。而方法內(nèi)部使用了Assert類的靜態(tài)方法對(duì)預(yù)期結(jié)果進(jìn)行斷言。
下面就可以使用NUnit工具來進(jìn)行測(cè)試了。我們將NUnitTest類庫項(xiàng)目右鍵屬性中的調(diào)試節(jié)點(diǎn),設(shè)置啟動(dòng)動(dòng)作為啟動(dòng)外部程序,然后設(shè)置路徑為下載zip包中的nunit.exe。如:C:\Users\guwei4037\Desktop\NUnit-2.6.3\bin\nunit.exe。
運(yùn)行類庫項(xiàng)目,這時(shí)候?yàn)槲覀儐?dòng)了NUnit的gui工具。我們按照下面的步驟進(jìn)行操作。
1、選擇File——New Project,指定NUnit項(xiàng)目文件到指定目錄。
2、選擇Tools——IDE Support——Visual Studio,勾上選項(xiàng),點(diǎn)擊OK。
3、選擇Project——Add VS Project
在彈出的對(duì)話框中找到NUnitTest項(xiàng)目的csproj文件并打開。
會(huì)看到已經(jīng)把我們項(xiàng)目中需要測(cè)試的方法都加載到了NUnit的GUI中。
我們只需要點(diǎn)擊右側(cè)的“RUN”按鈕,運(yùn)行測(cè)試即可。
如我們所愿,所有單元測(cè)試都通過了。
這是通過運(yùn)行外部程序(NUnit的GUI界面)來達(dá)到單元測(cè)試的效果的。
總感覺很麻煩,還要調(diào)用外部的應(yīng)用程序,有沒有簡(jiǎn)單點(diǎn)的最好能夠跟VS工具緊密結(jié)合的方式來進(jìn)行NUnit單元測(cè)試呢?答案是肯定的。
我們?cè)赩S中選擇工具菜單欄下的擴(kuò)展和更新,選擇聯(lián)機(jī)并在搜索框中輸入NUnit。
找到NUnit Test Adapter,下載安裝即可。按照好之后關(guān)閉VS,重啟一下就好了。
我們打開類庫項(xiàng)目中的UnitTest類,在右鍵彈出的菜單中點(diǎn)擊運(yùn)行測(cè)試。
運(yùn)行結(jié)束后,會(huì)在左側(cè)的測(cè)試資源管理器當(dāng)中顯示本次操作的結(jié)果。
是不是很方便啊?直接在VS當(dāng)中集成了,不用去配置外部程序了。
相信通過上面的介紹,你已經(jīng)學(xué)會(huì)如何在VS中集成NUnit進(jìn)行單元測(cè)試了。
關(guān)于更多的NUnit的參考文檔,請(qǐng)?jiān)L問:http://www.nunit.org/index.php?p=docHome&r=2.6.3。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。
分享文章:NUnit單元測(cè)試-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://www.yijiale78.com/article38/docipp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司、ChatGPT、建站公司、做網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容