"Platform-Channel"
- 流程測試基礎設施
在 Flutter 專案建立流程測試時碰到的 Dart 實作限制:控制器能不能在 headless 環境立起來、binding 怎麼跟真實網路測試共存、測試輸出雜訊怎麼治理、假後端的回應資料走什麼路徑序列化——限制形成一條建置鏈,前一個的答案決定後一個的形態
- 測試輸出的雜訊治理:預期的環境狀態不該走例外路徑
測試輸出長期印著兩行「已知無害」的錯誤——相機偵測 MissingPluginException、toast 套件的 assert fallback。已知雜訊會訓練人忽略輸出,新警報混在裡面就被過濾掉。修法是把「預期的環境狀態」變成前置判斷(channel mock 回空、無畫面早退),讓例外路徑只剩真正的例外。
- 讓 UI 控制器在 headless 測試立起來:platform channel mock、no-op 子類與 postFrameCallback 的手工補位
流程測試要驅動真實編排,而編排住在 UI 控制器裡——能不能在無畫面的測試環境把控制器立起來,決定整個測試套件的形態。先用 spike 驗證閘門、再逐項中和平台耦合,讓控制器在 headless 環境可建構。