Vue utils - 检查是否正在使用 jest 调用方法

use*_*875 4 unit-testing vue.js jestjs

我正在做一些测试,我想检查在触发元素中的单击后是否调用了方法,但测试一直说未调用该方法,我不知道为什么

这是我的测试:

test('some test', () => {
        const somethingChanged= jest.spyOn(Component.methods, 'somethingChanged')

        const wrapper = mount(Component, {
            propsData: data

        })

        const element= wrapper.find('.c-element').trigger('click')

        expect(somethingChanged).toBeCalled()
    })
Run Code Online (Sandbox Code Playgroud)

这一直说调用次数为0,我不知道我做错了什么这个方法是在组件中触发的,所以我知道它有效

Est*_*ask 5

正如trigger文件所述,

在 Wrapper DOM 节点上异步触发事件。

它应该是:

const element= wrapper.find('.c-element').trigger('click')
await wrapper.vm.$nextTick()
expect(somethingChanged).toBeCalled()
Run Code Online (Sandbox Code Playgroud)

使用await假设测试函数应该是async