UnitTest in .NET 系列文章目录
Photo :.NET單元測試的藝術
文?| Edison Zhou
這幾天陸陸續續更新了UnitTest in .NET這個系列的文章,現將其總結成一個小目錄。此外,特別推薦閱讀Roy Osherove的《單元測試的藝術》一書,此文也是該書的精華內容的學習筆記總結。
文章目錄?
Part 1.基本概念及第一個單元測試
Part 2.使用存根破除依賴
Part 3.使用模擬對象進行交互測試
Part 4.使用模擬框架簡化測試代碼
Part 5.高效管理與組織單元測試
一些補充?
此系列主要使用的是NUnit + NSub來介紹的,但你也可以用MSTest 或者 xUnit 來實現,模擬框架的話你也可以用同樣流行的Moq來做。但是,此類模擬框架都是以模擬接口為目標來設計的,無法模擬靜態方法等高級對象,如果你所維護或開發的項目是一個遺留系統,即所謂很多的遺留代碼(Legacy Code)的系統,那么建議最好使用一些比較高級的模擬框架,比如JustMock(付費版),它可以模擬靜態方法、密封類、私有成員、MsCorLib程序集的成員(比如DateTime.Now)甚至是Silverlight項目代碼。
有關JustMock框架的介紹,請移步這里:https://www.telerik.com/products/mocking.aspx
此外,我也強烈建議大家結合Jenkins等CI工具把單元測試引入持續集成的構建之中,這樣可以最大限度的發揮單元測試在開發測試過程中的作用。
在Jenkins中提供了Pipeline方便地進行構建流水線,在我的實踐中主要是通過開發人員的每一次Check-In到git,觸發一個Webhook到Jenkins中從而使持續集成構建任務開始執行:
從圖中可以看出,其經歷了中臺微服務的編譯和單元測試 及 BFF(Backend for Frontend)服務的編譯和單元測試來保障代碼質量,當然前提是有足夠的單元測試作為保護層,這也需要開發人員花時間為每個服務接口(或者高價值的部分)寫單元測試!
如果構建任務中有一個Stage失敗了,那么此構建任務則認為失敗,會給開發團隊和Leader發送郵件告警:
此外,我們還使用了一個用于大屏顯示構建狀態的插件—Build Monitor,在我們工作區后方的電視屏上會顯示各個構建任務的實時狀態,如果有任務失敗了會變為紅色:
并且,Build Monitor還會將推進不可靠代碼的提交者名字(git賬號名字)顯示在屏幕中的構建任務里邊,方便大家查看誰的鍋:
參考資料??
Roy Osherove 著,金迎 譯,《單元測試的藝術(第2版)》
Edison Zhou,《基于Jenkins的開發測試全流程持續集成實踐》
Edison Zhou,《基于Jenkins Pipeline的ASP.NET Core持續集成實踐》
The End
「?碼字不易,也希望各位看官看完覺得還行就在本文右下方順手點個“在看”,那就是對我最大的鼓勵!如果覺得很好,也可以轉發給你的朋友,讓更多人看到,獨樂樂不如眾樂樂,是吧?」
往期精彩回顧
.NET Core on K8S學習與實踐系列文章索引目錄
.NET Core 微服務學習與實踐系列文章索引目錄
【資料】2019 .NET China Conf 大會資料下載
【視頻】2019 .NET China Conf 大會視頻發布
2019?.NET?China?Conf 路一直都在,社區會更好
基于Jenkins的開發測試全流程持續集成實踐
基于Jenkins Pipeline的.NET Core持續集成實踐
【導讀】我讀經典,心曠神怡 -?經典書籍讀后感匯總
【導讀】我的詩和遠方?- 也讀唐詩與旅游游記匯總
點個【在看】如何?
總結
以上是生活随笔為你收集整理的UnitTest in .NET 系列文章目录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BeetleX网关非法Url请求拦截插件
- 下一篇: ASP.NET Core Web程序托管