跳至主要内容

Vue Test Utils API 說明

🧩 掛載元件與選項

  • mount:將待測元件「完整掛載」到 DOM,觸發所有生命週期;回傳 Wrapper 物件,供後續斷言與操作

    • attachTo:mount 的選項之一。指定實際 DOM 節點(如 document.body)當掛載目標,適合需要瀏覽器量測或 CSS 計算的場景
    • attrs:mount / shallowMount 選項。直接設定根元素的原生屬性(attributes),例:attrs: { id: 'app' }
    • data:mount / shallowMount 選項。傳入初始 資料(data)物件,等同於在元件內 data() 回傳值
    • props:mount / shallowMount 選項。一次性注入元件 prop 值;若需動態變更,請使用 wrapper.setProps
    • slots:定義具名或預設 slot 內容;可傳字串、函式或 VNode
    • global:集中設定全域配置(plugins、provide / inject、mocks…),讓多支測試共用
    • shallow:mount 選項;若設為 true,等同於使用 shallowMount——僅渲染當前元件,子元件自動 stub 化

🔧 Wrapper 方法


📦 Wrapper 屬性

  • vm:指向被測元件的 Vue 3 執行個體,可直接存取 this 內(exposed)成員

🧪 其他工具與設定

  • shallowMount:僅渲染當前元件,將子元件以 stub 替代,縮短渲染時間並聚焦單元測試
  • enableAutoUnmount:在 beforeEach 自動掛載、afterEach 自動卸載;呼叫一次即可於整個 test suite 生效
  • flushPromises:等待隊列中所有微任務 Promise 執行完畢,常用於 nextTick 及非同步 API 測試
  • config:Vue Test Utils 的全域靜態設定
    • config.global:與 mount 選項 global 相同功能,但影響全部測試;可在測試啟動前一次性設定
  • components:於 config.global 中自訂全域元件或 stub;例:config.global.components = { RouterLink: RouterLinkStub }
    • RouterLinkStub:官方提供的 Vue Router <router-link> 替代元件,可防止實際重新導向頁面並保留 to 資訊供斷言使用