編寫測試的優秀實踐列表
在編寫測試時,這些指導方針將作為要遵循的最佳實踐,這可以導致更高質量的測試。

以下是在編寫測試時應遵循的最佳實踐。這些是通用準則,無論進行何種類型的測試,都應該遵循。
保持測試獨立每個測試都應該獨立于其他測試,確保一個測試的失敗不會影響另一個測試的執行或結果。這可以提高測試的可靠性,實現測試并行化,并便于調試。
不要在測試之間共享狀態。在執行測試之前設置狀態,在執行后將其清除。這樣可以保持測試的隔離性。
早期編寫測試盡早在開發過程中開始編寫測試。早期的測試有助于更早地發現問題,并在開發生命周期的早期提供反饋。隨著開發生命周期進展到后期階段,修復問題的成本會增加。例如,在本地開發過程中找到和修復問題是容易且廉價的,但是如果同樣的問題移至生產環境,則很難找到問題,可能會導致組織損失資金、用戶或信任。
測試行為,而不是實現通過測試應用程序公開的行為來測試應用程序。例如,對于 Web API,如果測試調用控制器的方法,則這些測試測試的是實現而不是行為,因為這不是 Web API 公開的行為。公開的行為是 HTTP API,應該在該級別編寫測試,而不是在更低的層級。這樣可以使測試與實現解耦,同時保持公共行為的一致性時,可以隨意更改實現。
通過構建器管理復雜狀態通常,為了測試某個場景,我們首先需要構建一個狀態。這有時需要相當多的代碼來進行設置。通過使用設計模式(例如構建器)來管理和簡化創建的狀態。
編寫專注的測試一個測試應該只驗證一件事情。它不應該連續驗證多個語句。保持測試小而專注有助于維護測試,當測試失敗時,您將知道確切的錯誤原因。但是,如果一個測試包含多個驗證步驟,那么您將必須登陸以驗證測試中到底哪個部分失敗了。
使用多個級別使用多個級別創建測試套件,例如單元測試、集成測試和端到端測試。然后,在編寫測試時,考慮在哪個級別可以更好地進行測試,然后在該級別編寫測試。例如,公共庫方法可以在單元測試中進行測試,而數據庫交互可以在集成測試中進行測試。





























