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