2022年1月12日 星期三

單元測試的藝術 - Chapter 2.1 第一個單元測試

這一章說明了測試框架能夠帶給使用者什麼實質上的功能與幫助,

也說明了該如何安裝NUnit,但主要是以文字敘述,

雖然很簡單,但我在多個專案中的環境設定就遇到一點小問題,在這邊紀錄一下。

安裝NUnit套件

一開始透過擴充套件管理器安裝好NuGet Package Manager之後,

順利藉由 工具 -> NuGet封裝管理員 -> 套件管理主控台 ,

給予指令 "Install-Package NUnit",

完成NUnit套件的安裝,

但我另外開啟新的測試專案時,

卻發現按照這步驟卻一直安裝到原先已安裝好的第一個專案去,

後來發現原來套件管理主控台是針對專案去做設定的,

必須更改預設專案為要安裝的專案,如下圖所示:


確定參考中是否有以下兩個參考:

"NUnit套件" => nunit.framework

"要被測試的專案" => LogAn專案


接著按照書上指示,在class前和function前都加上Attribute,

分別是 [TestFixture] 與 [Test] ,這樣測試框架才知道那些是要被執行的測試方法。

要記得加上 using NUnit.Framework 哦!


接著要加上測試內容,書中定義了一個單元測試通常包含了三個行為:

1.Arrange : 其實就是建立被測物,例如要被測的function的所屬物件。

2.Act : 呼叫這個被測的function。

3.Assert : 確認結果是否符合預期。

書中的例子如下:


書中簡單介紹了Assert類別,這邊就不再介紹,

終於要執行第一個NUnit測試了,於是按照書中描述,

如果是透過NuGet安裝的NUnit.Runners,

可以在方案跟目錄下的Package資料夾找到NUnit GUI.exe,

但我沒找到,於是回想一下,第二章一開始有說NUnit GUI是需要另外安裝的,

翻回去看看,作者說在本章稍後會介紹如何透過NuGet安裝NUnit.Runners,

所以再仔細看過一次,還是沒發現哪裡有描述如何安裝,

因此自己上網找一下該如何安裝,幸好打上關鍵字就找到指令了。

安裝NUnit.Runners

透過和安裝NUnit套件一樣的方法,把套件管理器主控台打開,並打上指令:


看看方案根目錄下的Package資料夾有沒有NUnit GUI.exe。

還是沒有!!

找了其他人的文章,可以透過Adapter讓visual studio直接顯示測試結果,

安裝安裝方式可以透過指令或NuGet/管理NuGet套件安裝。

指令:

管理NuGet套件:


在上方選單選擇 測試 -> 執行 -> 所有測試 ,就可以看到第一次的結果:


解決了找不到 NUnit GUI.exe的問題,但下一個問題又來了,

即使我按照書中指示修正了寫錯的Function,執行測試卻依然失敗呢...

仔細看一下失敗原因:

沒有留言:

張貼留言

社會新鮮人如何投資?

我的觀點是,在 沒有很多 本錢 的情況下, 別寄望每個月幾千元放到股票或者最近很夯的高股息ETF就能讓你致富, 先投資自己,讓自己的本業收入提高吧。