為何採用瀏覽器模式
動機
我們開發 Vitest 瀏覽器模式功能,旨在協助改善測試流程,並獲得更精確、更可靠的測試結果。這項實驗性的測試 API 功能,讓開發人員能夠在原生瀏覽器環境中執行測試。本節將探討此功能背後的動機及其對測試所帶來的好處。
不同的測試方式
測試 JavaScript 程式碼有多種方式。有些測試框架在 Node.js 中模擬瀏覽器環境,而另一些則在真實瀏覽器中執行測試。以 jsdom 為例,它是一個規範實作,透過與 Jest 或 Vitest 等測試執行器搭配使用來模擬瀏覽器環境。至於其他測試工具,例如 WebdriverIO 或 Cypress,則允許開發人員在真實瀏覽器中測試其應用程式;而 Playwright 則提供瀏覽器引擎供您使用。
模擬環境的注意事項
在 jsdom 或 happy-dom 等模擬環境中測試 JavaScript 程式碼,簡化了測試設定並提供了易於使用的 API,使其適用於許多專案,並提升了對測試結果的信心。然而,需要注意的是,這些工具僅模擬瀏覽器環境,而非實際瀏覽器,這可能導致模擬環境與真實環境之間存在差異。因此,測試結果中可能會出現誤判或漏判。
為了在測試中獲得最高的信心,在真實瀏覽器環境中進行測試至關重要。這正是我們在 Vitest 中開發瀏覽器模式功能的原因,此功能允許開發人員在瀏覽器中原生執行測試,並獲得更精確、更可靠的測試結果。透過瀏覽器層級的測試,開發人員可以更有信心其應用程式在真實世界情境中將如預期般運作。
缺點
使用 Vitest 瀏覽器模式時,必須考慮以下缺點:
早期開發
Vitest 的瀏覽器模式功能仍處於早期開發階段。因此,它可能尚未完全最佳化,並且可能存在一些尚未解決的錯誤或問題。建議使用者透過 WebdriverIO、Cypress 或 Playwright 等獨立的瀏覽器端測試執行器,來強化其 Vitest 瀏覽器模式的體驗。
初始化時間較長
Vitest 瀏覽器模式在初始化過程中需要啟動提供者 (provider) 和瀏覽器,這可能會花費一些時間。這可能導致與其他測試模式相比,初始化時間更長。