[Unit Test] 測試程式中的比對物件

結果與期望比對,是測試程式碼中最重要的一個步驟,就是用它來取代人眼比對,有關物件比對 91哥的文章有非常詳細的介紹:

https://dotblogs.com.tw/hatelove/2014/06/06/how-to-assert-two-collection-equal

https://dotblogs.com.tw/hatelove/2016/03/28/compare-object-equality-with-expected-objects

當測試程式碼用的是複雜型別,會比對型別中的屬性狀態(值),用它來決定是否通過驗證,最直接的方式就是跑迴圈一個一個比,這樣做不是很聰明,也不夠快,太費力

我會使用以下物件來完成我的工作

  1. FluentAssertions
  2. SpecFlow

在這裡我分享我常用的比對方式...

...繼續閱讀 »

[TFS 2015] 實作 Build vNext 自動部署 dotCover 測試涵蓋率網頁

dotCover 在 Jetbrains 旗下,是用來產生測試涵蓋率報表的工具,授權方式已經和 ReSharper Ultimate 綑綁在一塊,它有免費試用;若你需要使用網頁來呈現報表, 或許你可以考慮 dotCover,官方連結:https://www.jetbrains.com/dotcover/?fromMenu

dotCover 提供 Command Line 的支援,整合自動化建置這一關是沒問題的,不過我在實作的時候仍然有碰到一些問題,不用怕 dotCover 也有技術支援,回應速度算蠻快,問題很快就解掉了。

...繼續閱讀 »

[C#.NET][Unit Test] 採用 LocalDB 進行集成測試

集成測試主要是測試個元件之間的互動是否如預期,在這個階段的測試,我會把程式進入點 UI Layer 換成單元測試專案,由測試專案取代之,為什麼不是直接從UI測,原因很簡單,因為 UI 的變化太快了,一方面為了減少因 UI 改變而衍生出額外的工作,另一方面則為了提高測試程式碼的重用性,所以我會從 BLL 測試

三層式架構,物件彼此之間的關係,如下圖:

...繼續閱讀 »