當前位置: 妍妍網 > 碼農

高效C#測試編寫秘訣!輕松掌握測試編寫精髓!

2024-03-02碼農

通常情況下,編程初學者都會被告知編寫單元測試至關重要。然而,在實際工作環境中,編寫單元測試的情況卻並不普遍。

這主要是因為許多計畫規模相對較小, 最多是復雜點的sql查詢再加上一點臨時的略高的並行請求。

在這種情況下,編寫單元測試似乎並非必要,甚至可能被視為額外的負擔。

當然,如果某天老板確實提出了編寫單元測試的 要求,那就寫吧。

建立測試計畫

首先解決方案右鍵,滑鼠到Add這裏,點選 New Project。

開發平台選擇Windows,計畫型別選擇Test後,第一個計畫樣版就是所需要的空白測試工程樣版。

建立完成的測試計畫如下圖所示:

隨後,我們新建了一個名為「Test」的被測試計畫,並在這個計畫中簡單建立了兩個檔,以供MSTest框架進行測試。

現在,我們可以開始在 MSTest 中編寫測試類並進行測試。

添加測試程式碼

通常情況下,當我們首次編寫一個函式或介面時,會根據自己的預期進行測試,並在出現問題時進行相應的調整,直至達到預期的效果。

當計畫規模較小且相對簡單時,這種方法相對有效。

但是未來計畫一旦復雜且龐大,或某個函式被其他函式呼叫,這種呼叫可能會有之前沒考慮到的上下文環境,可能超出最初的設想,然後報錯。

當有函式因為業務變動需要更改時,單獨驗證被修改函式本身的正確性是簡單的,但被其他函式呼叫的那部份功能可能就報錯了,這種錯誤是不容易發現的。

所以我們使用單元測試,把所有功能函式或介面都包裹進一個測試函式中,測試函式裏面給個正確性的結果進行假定判斷。

右鍵Run All Test就能執行所有的測試函式。測試不透過的會標紅,點進去修改再Run All Test,直到所有測試結果全綠為止。

在 MSTest 中測試函式可以被一對一的生成。

Test Project 左側的下拉框為選擇生成到的對應測試計畫,另外三個紅框部份選項為設定 namespace,類名與方法名,一般預設即可。

生成的測試程式碼如下,每個原始檔中的函式都有對應的測試函式。

藍色感嘆號被稱為 codelens, 它通常預設處於開啟狀態。

這裏補充一點: VS 中的 Search 功能不僅限於尋找設定項,它還能迅速定位程式碼, 一鍵直達。

接下來,請按照下圖中所示 將選項勾上即可。

點選測試函式上面藍色感嘆號,可以單獨 run 和 debug 。

開啟測試功能的集中展示視窗 Show in Test Explore。 在這個視窗中,您可以清晰地看到測試的結果。

一旦有報錯的直接標紅,點選錯誤資訊就顯示在右側。點選綠色小三角能全部 run 一遍,祝大家每次run的時候都是全綠~

斷言

在測試過程中, 測試 的錯誤一般不是報 Exception 出來, 而是 給個假 定, 在某些輸入下這個假定一定是錯的或者是對的。

基於特定的假設來進行判斷。 符合這個假設的就是 正確,表示測試透過,否則就是錯誤,要返工。

MSTest 的假設就是斷言,如下圖紅框內容。

這裏表示1+3=3才是正確的,表示Add這個函式測試透過。不過現實程式碼中肯定不會這麽簡單的函式,測試的輸入參數的邊界才是難點,測試不覆蓋全面也是白測。

再看看這個,用特性呼叫標註的測試方法。

程式碼有bug不怕,多寫測試就好~

END