Screen state test 的核心概念是「驗證畫面層級的狀態機是否完整 — 每個狀態下使用者看到什麼、能操作什麼、怎麼離開」。它的斷言對象是使用者可見的畫面,和 unit test(斷言函式回傳值)及 protocol integration test(斷言協議互動)職責不同。可先對照畫面狀態矩陣

概念位置

Screen state test 是測試三層中的第三層。Unit test 驗證程式碼邏輯,protocol integration test 驗證協議互動,screen state test 驗證畫面狀態。同一段程式碼可能 unit test 通過但 screen state test 失敗 — 因為 UI binding 的問題讓正確的邏輯沒有反映到畫面上。

可觀察訊號與例子

需要 screen state test 的訊號是畫面有多個狀態(loading / connected / error / disconnected)且狀態轉換邏輯複雜。畫面狀態矩陣直接轉成 test case — 矩陣中每個狀態的「顯示」「可用操作」「退出路徑」各對應一個 assertion。

設計責任

Screen state test 要決定用什麼工具驗證畫面(widget test / integration test / Playwright)、斷言的粒度(元素存在 / 文字內容 / 視覺比對)、和狀態的觸發方式(mock 觸發狀態切換 / 真實操作觸發)。