我有一个简单的单元测试,如下所示。我正在尝试触发锚点上的click事件,但是由于错误,我认为它不会发生:
预期已调用模拟函数,但未调用。
组件:
<template>
<a @click="fetchAll" class="icon">
<Icon class="icon" scale="2" />
</a>
</template>
<script>
export default {
methods: {
fetchAll() {}
}
}
</script>
测试:
it('should fetch all', () => {
const wrapper = shallowMount(Component, {
stubs: [ 'Icon'],
localVue
})
const fetchAll = jest.fn()
wrapper.setMethods({ fetchAll })
wrapper.find('.icon').trigger('click')
expect(fetchAll).toBeCalled()
})
What is wrong?
答案 0 :(得分:0)
您的组件安装正确吗?尝试这样:
const fetchAllMock = jest.fn()
wrapper.setMethods({ fetchAll: fetchAllMock })
答案 1 :(得分:0)
我遇到了同样的问题,在我的情况下,解决方法是在带有括号的模板中调用该方法,如下所示:
<a @click="fetchAll()" class="icon">
这听起来很奇怪,因为在所有文档和教程中,我都看到首选的语法没有括号(如果没有参数),但这是唯一可行的解决方案。