在開發產品的過程中,我們每天都會為產品新增或修改功能,也會頻繁重構調整設計,如果沒有自動化測試保護的話,就會容易改壞程式又沒發現,導致 Bug 被釋出給使用者,反而花費更多時間在除錯與溝通上,造成人財兩失,反而不如一開始花時間寫好測試。在這系列的文章中,主要是希望由淺入深分享如何用單元測試和 Widget Test 來測試我們的 Flutter 程式,並介紹各種測試場景與相關的架構設計,讓讀者可以花最小的力氣把測試應用在開發上,從此過上無憂無慮的開發人生。
隨著 Scrum 越來越流行,我們需要越來越多的跨功能團隊,這些跨功能團隊可以端到端的完成需求,除了寫程式之外,也會需要自己測試功能,甚至有時也會需要處理產品維...
單元測試是什麼呢?顧名思義,就是針對單元的測試。那什麼又是單元呢?若我們看維基百科的單元測試定義,可以發現在物件導向程式中,單元通常就是指類別裡面的方法。 一...
昨天介紹了 Dart 單元測試,如何針對一個簡單的類別進行測試。但是在實務上,沒有任何依賴的類別可能並不多,大部分的類別都是會需要與其他類別協作,這些其他類別有...
在昨天文章中,我們直接測試了 UserRepository 的 get 方法,在測試中直接呼叫遠端伺服器取得 User,但是為了測試的可重複性,我們還是必須修改...
在昨天的文章中,我們分享了如何透過依賴注入的方式把假的依賴傳入待測物件中,但是如果轉案的程式碼本身沒有這樣的設計,就會很難注入假的依賴,如果我們想改,又可能會牽...
這幾天的文章中,我們談論如何處理那些頑劣的依賴,透過 Stub 的方式,注入我們設計過的資料到測試之中,最後驗證回傳值或者物件狀態來決定測試成功與失敗。再討論...
大多時候,我們在實現功能需求時,都是先完成正常流程,也就是順利執行原本預期要執行的操作的情境。在正常流程之外,還有一部份重要的任務需要關注,那就是錯誤處理。錯誤...
我們介紹了許多單元測試技巧,可以幫助我們處理難測試的類別、做假資料或隔離外部依賴,這些手段可以處理絕大多數的狀況。如果我們設計物件的時候,都依照 CQS 的概念...
無論什麼樣的產品,或多或少都會需要時間,可能用來提示使用者,也可能用來計算優惠,說到這裡,聰明的觀眾朋友也就不難猜到今天想討論的一種情境:時間。當我們的測試與時...
在開發的時候,有時候會需要 Scheduler 執行一些定期任務,例如:撈資料到本地端存放、檢查並繼續未完成任務 …等。今天主要討論如何測試 Schedler,...