Testing Flutter apps翻譯

o動感超人o發表於2019-04-19

官方文件

你的應用程式功能越多,手動測試就越難。自動測試有助於確保你的應用程式在釋出前正確執行,同時保留你的功能和加快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。 有關在各種持續整合服務上執行測試的資訊,請參見以下內容:

1. 針對Flutter使用fastlane持續交付

2. 在Travis上測試Flutter應用程式

3. Gitlab持續整合(Gitlab CI/CD)。您需要建立和配置一個.gitlab-ci.yml檔案。您可以在flutter_redux庫中找到一個示例

4. 針對Flutter的Codemagic ci/cd

5. 針對Flutter使用Bitrise的CI/CD

相關文章