此部份參考書本的第2.4章節。
這邊會講解一些Unit test會包含的架構以及作者表達的命名精神。請參考第四天和第五天
通常一個UT會包含三個行為:
LogAnalyzer analyzer = new LogAnalyzer();把目標實體化。bool result = analyzer.IsValidLogFileName("filewithbadextension.foo");
Assert.False(result);
所以在程式碼:
[Test]
public void IsValidLogFileName_goodExtensionUppercase_ReturnsTrue()
{
    LogAnalyzer analyzer = new LogAnalyzer();
    
    bool result = analyzer.IsValidLogFileName("sion.LOG");
    
    Assert.True(result);
}
可以看到這三個條件。先實體化要測試的對象,接著進行資料測試,最後再檢驗結果是否相同。
在範例中,可以看到方法名稱非常的長,這是作者的命名習慣。目的是直接從名稱就可以快速了解目的以及測試結果。
裡面包含了被測試的功能、測試的條件,以及預期的回傳結果,所以方法名稱有這三個部分:
IsValidLogFileName。goodExtensionUppercase。ReturnsTrue。所以有:IsValidLogFileName_BadExtension_ReturnsFalse和IsValidLogFileName_goodExtensionUppercase_ReturnsTrue
我們可以解讀:
false。True。是不是簡潔有力許多呢?這樣就不需要進入程式碼裡面,就可以快速得知測試項目與內容!
而作者也在程式碼中,這三個部分做出區隔,每個部分都空一行,可以讓閱讀者可以更容易取得這三個部分。
明天將會講解一些NUit可以使用的小功能