iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
Mobile Development

30 天輕鬆學會 Flutter 測試 系列

在開發產品的過程中,我們每天都會為產品新增或修改功能,也會頻繁重構調整設計,如果沒有自動化測試保護的話,就會容易改壞程式又沒發現,導致 Bug 被釋出給使用者,反而花費更多時間在除錯與溝通上,造成人財兩失,反而不如一開始花時間寫好測試。在這系列的文章中,主要是希望由淺入深分享如何用單元測試和 Widget Test 來測試我們的 Flutter 程式,並介紹各種測試場景與相關的架構設計,讓讀者可以花最小的力氣把測試應用在開發上,從此過上無憂無慮的開發人生。

鐵人鍊成 | 共 30 篇文章 | 17 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day 1 你準備好一起來寫測試了嗎?

隨著 Scrum 越來越流行,我們需要越來越多的跨功能團隊,這些跨功能團隊可以端到端的完成需求,除了寫程式之外,也會需要自己測試功能,甚至有時也會需要處理產品維...

2023-09-15 ‧ 由 保羅 分享
DAY 2

Day 2 動手寫一個單元測試

單元測試是什麼呢?顧名思義,就是針對單元的測試。那什麼又是單元呢?若我們看維基百科的單元測試定義,可以發現在物件導向程式中,單元通常就是指類別裡面的方法。 一...

2023-09-16 ‧ 由 保羅 分享
DAY 3

Day 3 單元測試不總是那麼容易

昨天介紹了 Dart 單元測試,如何針對一個簡單的類別進行測試。但是在實務上,沒有任何依賴的類別可能並不多,大部分的類別都是會需要與其他類別協作,這些其他類別有...

2023-09-17 ‧ 由 保羅 分享
DAY 4

Day 4 測試替身與依賴注入

在昨天文章中,我們直接測試了 UserRepository 的 get 方法,在測試中直接呼叫遠端伺服器取得 User,但是為了測試的可重複性,我們還是必須修改...

2023-09-18 ‧ 由 保羅 分享
DAY 5

Day 5 這段程式碼測不了

在昨天的文章中,我們分享了如何透過依賴注入的方式把假的依賴傳入待測物件中,但是如果轉案的程式碼本身沒有這樣的設計,就會很難注入假的依賴,如果我們想改,又可能會牽...

2023-09-19 ‧ 由 保羅 分享
DAY 6

Day 6 不改變狀態也不回傳,那我怎麼測試?

這幾天的文章中,我們談論如何處理那些頑劣的依賴,透過 Stub 的方式,注入我們設計過的資料到測試之中,最後驗證回傳值或者物件狀態來決定測試成功與失敗。再討論...

2023-09-20 ‧ 由 保羅 分享
DAY 7

Day 7 程式開發不只有正常路徑

大多時候,我們在實現功能需求時,都是先完成正常流程,也就是順利執行原本預期要執行的操作的情境。在正常流程之外,還有一部份重要的任務需要關注,那就是錯誤處理。錯誤...

2023-09-21 ‧ 由 保羅 分享
DAY 8

Day 8 假的,都是假的,但不是業障重

我們介紹了許多單元測試技巧,可以幫助我們處理難測試的類別、做假資料或隔離外部依賴,這些手段可以處理絕大多數的狀況。如果我們設計物件的時候,都依照 CQS 的概念...

2023-09-22 ‧ 由 保羅 分享
DAY 9

Day 9 如何在 Dart 中輕鬆測試時間

無論什麼樣的產品,或多或少都會需要時間,可能用來提示使用者,也可能用來計算優惠,說到這裡,聰明的觀眾朋友也就不難猜到今天想討論的一種情境:時間。當我們的測試與時...

2023-09-23 ‧ 由 保羅 分享
DAY 10

Day 10 測試每執行五秒,開發者就少了五秒

在開發的時候,有時候會需要 Scheduler 執行一些定期任務,例如:撈資料到本地端存放、檢查並繼續未完成任務 …等。今天主要討論如何測試 Schedler,...

2023-09-24 ‧ 由 保羅 分享