開源單元測試工具 Nunit

2022-03-31 13:47:32 字數 1625 閱讀 1469

開始

當你安裝之後,會有兩種不同的方式來執行你的的測試。控制台執行nunit-console.exe,執行最快,但是不利於互動;圖形執行nunit.exe,乙個win form的應用程式,提供乙個圖形介面,讓你更直觀的控制你的測試執行。

安裝完之後,那就在你現在專案中建乙個測試的專案吧,與vs整合的測試新建乙個單元測試的專案不一樣的,nunit需要新建乙個類庫的專案,然後引用你要測試的專案和nunit框架程式集nunit.framework.dll,這樣就可以開始自己的測試**了。

執行和配置

首先編譯你的測試專案,執行nunit.exe,開啟圖形介面,選擇你的測試dll,點選run,就可以獲得乙個很直觀的反饋,直觀到不解釋。

但是這些配置只不會影響到你的測試專案,如果想要對你的某個專案進行一些控制,那麼請在測試專案對應的如test.dll同目錄下建立test.dll.config的配置檔案,你的檔案的格式應如:

<?xml version="1.0" encoding="utf-8" ?>	  

...

對於其中的配置節點,如果 oldstyletestcases 為true時,nunit會把所有以test…開始的方法認為是測試,這個字首不區分大小寫。apartmentstate是用來設定執行測試的執行緒的單元狀態。threadpriority設定測試執行緒的優先順序。defaultlogthreshold設定被nunit捕獲用於記錄日誌的錯誤級別,這個級別必須是log4net中定義的級別。

更多的執行和配置細節請檢視:

示例

單元測試的簡單入門示例,就貼乙個官方文件上的示例吧,很具有代表意義,看了之後,應付乙個簡單測試可以畫瓢了。

假如我們的乙個銀行系統,實現了基本的存錢、取錢和轉賬的功能。

namespace bank

public void withdraw(float amount)

public void transferfunds(account destination, float amount)

public float balance

}}}

下面我們寫乙個簡單的測試類:

namespace bank

}}

我們看到,我們的accounttest類應用了乙個testfixture的特性,它指示我們的類裡面有測試的**,另外它是可以被繼承的。它要求我們測試類必須的公開的並且沒有約束條件在超類上,還必須有乙個預設的構造器。

同樣我們的測試方法transferfunds也應用乙個test的特性,它指示我們的方法是乙個測試方法,這個測試方法必須是返回void,並且是無參的。在我們的測試方法中,我們要初始化要求的物件,然後執行要被測試的**,然後檢驗得到的結果和我們預期的結果。檢驗結果我們用到斷言,這是nuint的乙個核心特性,將在以後的文章中介紹。這裡我們用到了assert.areequal,它要求兩個引數:第乙個是我們預期的結果,第二個**執行的結果。

此時我們第乙個示例也就完成了,就可以執行了。

e文好的可以看unit官方提供的經典示例:

當然也有對應的中文版:

這一篇先寫到這,以後會把nunit的重要特性:assertions斷言,constraints約束,attributes特性總結下。

單元測試工具NUnit的使用

使用 nunit 工具來進行單元測試 首先在要建立乙個單元測試的專案,通常在原有的解決方案中新增新專案,在彈出的專案型別中選擇單元測試,專案的命名一般情況下與解決方案的名稱相同後加unittest 然後在專案中新增乙個單元測試的類,類的名稱與要測試的類的名字相同,也是字尾加unittest,在單元測...

單元測試 NUnit

本內容摘自 單元測試之道c 版 使用nunit 編寫目的 供日後參考學習,好記心不如爛筆頭。基本語法 1 單元測試 斷言 assert 方法 areequals assert.areequals expected,actual string message 這是使用最多的斷言形式,expected ...

單元測試NUnit

在vs中新建的專案中加入nunit.framework的引用。或許我們可以這麼做測試,但顯然不專業。我們新建乙個類叫calculatortest,雖然名字可以隨意起,但是最好這麼叫,比較明顯。注意,這裡的測試方法必須是public void,且沒有引數的,方法名字可以隨意取。而且注意這裡判斷採用的a...