iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 5
0
Software Development

【Unit Test】Unit Test with C#系列 第 5

【Day 5】解說第一個Unit Test之1 -程式碼解說

第四天,裡面有兩個檔案LogAnalyzer.csLogAnalyzerTests.cs。其中LogAnalyzer.cs為主要的功能程式,而另外一個就是我們的主角Unit test的LogAnalyzerTests.cs。本次主軸將會討論這個檔案。


概述一下LogAnalyzer.cs。這是一個測試是否為log檔的檔案,帶入的參數是該檔案的名稱。由此可知我們的判斷依據就是檔名,如果是正確的檔名,將會回傳true,如果是錯的就是false。所以在unit test中,我們要執行的測試內容,就是檢查這個「判斷檔名」功能是否正常運作。
首先要製作一個正常的功能,判斷IsValidLogFileName(string)功能是否正常,所以測試要包含回傳truefalse,因此有一個會回傳true的測試:IsValidLogFileName_goodExtensionUppercase_ReturnsTrue和會傳false的測試:IsValidLogFileName_BadExtension_ReturnsFalse
在每個測試方法上面有個[Test],這是一個標記方法的方式,它讓NUit Test可以識別此方法是一個測試的方法。
而測試的方法內有測試目標方法被呼叫,並且帶入我們所要測試的檔名。後面的Assert是一個Nunit.Framework內的一個Class,提供靜態方法,這是用於聲明某些特定的假設(也就是我們測試期望的回傳值)是應該成立的。以IsValidLogFileName_goodExtensionUppercase_ReturnsTrue為例,我們是期望它要回傳true,所以我們使用Assert.True(bool),如果測試的值是true,則表示通過。同樣道理使用Assert.False(bool),表示預期是false

而如果這兩個測試有通過,在測試結果(第四天最後一張圖)會亮綠燈,當失敗就會亮紅燈。這也就是Unit Test有沒有通過的圖示。


明天將會說明這個測試的精神與結構


上一篇
【Day 4】第一個Unit Test
下一篇
【Day 6】解說第一個Unit Test之2-測試程式碼結構與精神
系列文
【Unit Test】Unit Test with C#31

尚未有邦友留言

立即登入留言