iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

重啟挑戰:老派軟體工程師的測試修練 系列

身為一個在軟體開發領域打滾多年的「Old School」工程師,深知測試的重要性,也深刻體會到從零開始建立測試文化的挑戰。
隨著生成式 AI 興起,GitHub Copilot、Claude、ChatGPT 等工具確實讓測試
程式碼產生變得容易,但也帶來新問題:工程師雖能快速產生測試程式碼,
卻因跳過基礎學習歷程,而缺乏測試程式碼的識讀與設計能力。
這系列將分享我過往在公司內部推動測試教學到團隊實踐的完整歷程,從基礎原則與框架,到相關套件與工具,再深入進階工具與整合測試,最後探索 AI 輔助測試的功能。
這不只是技術教學,更是老派工程師對 AI 時代測試文化的反思與實踐。

鐵人鍊成 | 共 31 篇文章 | 4 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11 – AutoFixture 進階:自訂化測試資料生成策略

前言 在前面的章節中,我們了解了 AutoFixture 的基本使用方式。今天我們要深入瞭解如何根據業務需求客製化測試資料生成邏輯,學習進階的自訂化技術,讓測試...

2025-08-20 ‧ 由 mrkt 分享
DAY 12

Day 12 – 結合 AutoData:xUnit 與 AutoFixture 的整合應用

前言 在前一章中,我們學會了如何自訂 AutoFixture 的資料產生策略,今天我們要學習 AutoData 屬性家族,透過 xUnit 與 AutoFixt...

2025-08-21 ‧ 由 mrkt 分享
DAY 13

Day 13 – NSubstitute 與 AutoFixture 的整合應用

前言 前面學會了 NSubstitute 的依賴模擬和 AutoFixture 的資料產生。但實際開發時,當服務類別有多個相依性,手動建立每個 Mock 物件會...

2025-08-22 ‧ 由 mrkt 分享
DAY 14

Day 14 – Bogus 入門:與 AutoFixture 的差異比較

前言 在前面的章節中,我們深入學習了 AutoFixture 的各種功能,從基本的匿名測試到與 NSubstitute 的整合應用。AutoFixture 的「...

2025-08-23 ‧ 由 mrkt 分享
DAY 15

Day 15 – AutoFixture 與 Bogus 的整合應用

前言 前幾天我們已經認識了 AutoFixture 和 Bogus 這兩個測試資料產生工具。 AutoFixture 擅長匿名測試和快速物件建構 Bogus...

2025-08-24 ‧ 由 mrkt 分享
DAY 16

Day 16 – 測試日期與時間:Microsoft.Bcl.TimeProvider 取代 DateTime

前言 前面已經學過各種測試技術,從基礎單元測試到 AutoFixture、Bogus 等進階工具。今天要解決一個很實際的問題:時間相依性的測試。 看看這些常見的...

2025-08-25 ‧ 由 mrkt 分享
DAY 17

Day 17 – 檔案與 IO 測試:使用 System.IO.Abstractions 模擬檔案系統 - 實現可測試的檔案操作

前言 前一天學會了如何處理時間相依性的測試問題,現在要面對另一個常見的測試挑戰:檔案系統相依性。 實際開發中,經常需要處理檔案操作: 讀取設定檔 處理上傳的檔...

2025-08-26 ‧ 由 mrkt 分享
DAY 18

Day 18 – 驗證測試:FluentValidation Test Extensions

前言 在前一天我們學會了如何處理檔案系統相依性的測試問題,今天我們要面對另一個重要的測試挑戰:資料驗證邏輯測試。 在開發過程中,我們經常需要處理各種資料驗證:...

2025-08-27 ‧ 由 mrkt 分享
DAY 19

Day 19 – 整合測試入門:基礎架構與應用場景

前言 前面我們學了很多單元測試的技巧,從基本的 xUnit 框架到各種 Mock 工具,再到處理時間、檔案系統等相依性問題。今天我們要跨出單元測試的範圍,進入整...

2025-08-28 ‧ 由 mrkt 分享
DAY 20

Day 20 – Testcontainers 初探:使用 Docker 架設測試環境

前言 在 ASP.NET Core 中,使用 Entity Framework Core (EF Core) 的 InMemory 資料庫來進行單元測試是一種常...

2025-08-29 ‧ 由 mrkt 分享