你的應用程式功能越多,手動測試就越難。自動測試有助於確保你的應用程式在釋出前正確執行,同時保留你的功能和加快bug修復速度。
自動化測試分為以下幾類:
- 單元測試:測試單個函式、方法或類
- widget測試
- 整合測試:測試一個完整的應用程式或者一個應用程式的大部分
一般來說,一個經過良好測試的應用程式有許多單元和widget測試,通過程式碼覆蓋率來跟蹤,加上足夠的整合測試來覆蓋所有重要的用例。 這個建議是基於這樣一個事實,即不同型別的測試之間存在著權衡,如下所示。
Unit 單位 | Widget 小工具 | Integration 融合 | |
---|---|---|---|
可信度 | 低 | 高 | 最高 |
維護成本 | 低 | 高 | 最高 |
依賴性 | 很少 | 多 | 最多 |
執行速度 | 快 | 慢 | 最慢的 |
單元測試
單元測試測試單個函式、方法或類。 單元測試的目標是在各種條件下驗證邏輯單元的正確性。 被測試單元的外部依賴項通常被模擬出來。 單元測試通常不從磁碟讀取或寫入,也不從執行測試的程式外部接收使用者操作。
目錄:
1. 單元測試簡介
2. 使用 Mockito 模擬依賴項
Widget測試:
Widget測試(在其他被稱為元件測試的UI框架中)測試單個Widget。Widget測試的目標是驗證Widget的UI是否按預期進行檢視和互動。測試一個Widget涉及多個類,並且需要提供一個BuildContext用來給Widget提供上下文環境。
例如,被測試的Widget應該能夠接收和響應使用者操作和事件,執行佈局,並例項化child Widgets。因此,Widget測試比單元測試更全面。但是,與單元測試一樣,Widget測試的環境被一個比完整的UI系統簡單得多的實現所取代。
目錄:
1. Widget測試介紹
2. 查詢child widget
3. 點選,拖動和輸入文字
整合測試:
整合測試測試一個完整的應用程式或應用程式的大部分。整合測試的目標是驗證所有被測試的Widget和服務是否按預期正常工作。此外,您可以使用整合測試來驗證應用程式的效能。 通常,整合測試在真實裝置或模擬器上執行,如iOS模擬器或Android模擬器。測試中的應用程式通常與測試驅動程式程式碼隔離,以避免結果出現偏差。
目錄:
1. 整合測試介紹
2. 效能分析
3. 滾動
持續整合服務
持續整合(CI)服務允許您在推送新程式碼更改時自動執行測試。這可以及時反饋程式碼更改是否按預期工作,並且不會引入bug。 有關在各種持續整合服務上執行測試的資訊,請參見以下內容: