沒空寫單元測試嗎?
有了「Visual Studio IntelliTest 」,請別再說沒空哦!
環境:Visual Studio Enterprise
當程式寫好了之後,要再寫單元測試會讓您覺得很吃力嗎?
Visual Studio IntelliTest 可以自動幫我們產生一些單元測試哦!
筆著拿「Building an application using design patterns and principles in C#」的範例來舉例。
我們可以在想要建立單元測試的 Method 上按右鍵,選取「Run IntelliTest」,Visual Studio 就會幫我們建立單元測試並執行它,如下圖,
建立好之後,我們可以在「IntelliTest Exploration Results」視窗點選每個測試Method,右邊就會出現測試程式及執行結果,如下圖,
檢視過它幫我們建立的測試程式後,如果是我們需要的,就可以選擇那些項目,然後在在「IntelliTest Exploration Results」視窗中按下「Save」,就會自動幫我們建立測試專案及程式,如下圖,
而當我們開啟測試程式會發現只有一個測試的Method,並沒有我們選取的那些測試Method,如下圖,
為什麼會這樣子呢?
因為它是 partial class,我們選取的測試程式是放在 .g.cs 的程式裡面,如下圖,
建置測試專案後,在 Test Explorer 視窗,就會出現那些測試Method,也可以直接執行測試,如下圖,
回到「IntelliTest Exploration Results」視窗,會發現它會將 null 當參數傳入,所以就會發生 NullReferenceException 。
如果要允許 null 的話,可以在「IntelliTest Exploration Results」視窗上按下「Allow」,這樣 Method 傳出 NullReferenceException 就會視為通過,如下圖,
在「IntelliTest Exploration Results」視窗中,按下「Warnings」,會有幾個類型的警告,在「Object Creation」中,表示目前測試的物件是直接用 new 建立出來的,如果想要使用 Factory 來建立的話,可以按下「Fix」,它會幫我們建立 Factory.cs 的程式,讓我們來調整建立物件的方式,如下,
參考資料
Write Unit Test Automatically using IntelliTest in Visual Studio 2015
Building an application using design patterns and principles in C#
Smart Unit Tests - a mental model
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^