我有一个 Vue 2.0 组件,它使用来自Vuetify的 Menu 组件。我正在使用官方的vue-test-utils在测试期间挂载我的组件。
我面临的问题是菜单组件将“菜单”附加到 HTML 正文(在组件范围之外)。因此,我无法wrapper.find('.menu')
像使用组件中的任何其他元素一样访问它。
有没有一种使用 vue-test-utils 访问附加到正文的元素的好方法?
更新
此时我的组件看起来非常像这个Vuetify codepen 示例
我像这样安装我的组件:
import Vuex from 'vuex'
import Vuetify from 'vuetify'
import AuthenticatedUser from './AuthenticatedUser'
import { mount, createLocalVue } from 'vue-test-utils'
const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(Vuetify)
describe('AuthenticatedUser', () => {
let getters
let store
beforeEach(() => {
getters = {
getUserDetails: () => { name: 'John Doe' }
}
store = new Vuex.Store({ getters })
})
it('should open menu when button is clicked', () => {
const wrapper = mount(AuthenticatedUser, { store, localVue })
// In here 'wrapper' won't have access to the dropdown menu,
// since it has been added directly to the HTML body
})
})