最近在幫客戶專案寫 e2e 測試,發現幾個常見錯誤
首先,e2e 跑起來很慢,會拖慢 CI 速度,應該不是多多益善,而是要挑高價值的來寫
很多基本狀況、訊息提示、UI 表現,應該要用 unit test 來處理,vue 與 react 應該都有對應的 component test
工具可以寫
再來,e2e 處理的情境要怎麼切分?這是典型的程式邊界(boundary)問題,也是 抽象化
問題的一種
網路上四處找範例,沒找到比較好用的設計方法,我試著自己設計
目前思考出幾個參考原則,要同時符合以下條件,才放進 e2e 測試
- 高價值原則:如果用戶處在這個情境,然後測試跑失敗了,老闆會很緊張,工程師就算在週末也需要緊急修理
- 變動頻繁原則:相關程式碼經常變動,所以每次在 CI 都跑測試會很有幫助
- 最後手段原則:這裡提供的安全感,沒辦法用 unit test 或 integration test 取代
Refs
- https://filiphric.com/how-to-structure-a-big-project-in-cypress
- https://sendgrid.com/blog/ideas-for-configuring-organizing-and-consolidating-your-cypress-tests-frontendtwiliosendgrid/
- https://www.linkedin.com/pulse/organizing-maintaining-your-cypress-test-suite-best-kate-serebryakova/
- https://kentcdodds.com/blog/static-vs-unit-vs-integration-vs-e2e-tests
vue 官方文件還有介紹測試的種類和推薦工具 連結
react 文件都沒有QwQ