我有一个组件可以监听 Vue $root 实例发出的事件。
export default {
data() {
return {
name: ''
}
},
methods: {
openModal(name) {
this.name = name
}
},
mounted() {
this.$root.$on('open-modal', name => {
this.openModal(name);
});
}
}
我还有另一个地方是我调用该事件的代码。
this.$root.$emit('open-modal', 'some-name');
如何编写一个在 $root 上调用该事件并断言该事件已被调用的单元测试?我正在使用 Vue 测试工具https://vue-test-utils.vuejs.org/en/并且找不到调用事件的方法。
我试过这个,但它不起作用。
it('sets the modal name on the open-modal event', () => {
const wrapper = mount(Modal);
wrapper.vm.$root.$emit('open-modal', 'my-modal')
expect(wrapper.vm.$data.name).to.equal('my-modal');
});