unit-testing - Vue utils - 检查是否用 Jest 调用了一个方法

标签 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()
    })

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

最佳答案

trigger documentation状态,

Triggers an event asynchronously on the Wrapper DOM node.



它应该是:
const element= wrapper.find('.c-element').trigger('click')
await wrapper.vm.$nextTick()
expect(somethingChanged).toBeCalled()
await的使用假设测试函数应该是 async .

关于unit-testing - Vue utils - 检查是否用 Jest 调用了一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61015233/

相关文章:

c# - 有没有一种方法可以为一个接口(interface)编写测试,然后针对所有实现该测试的类对其进行测试?

android - "java.lang.SecurityException:Injecting to another application requires INJECT_EVENTS permission"多个 Activity 工作流测试 android 时出错

xcode - OCUnit 测试失败,但 Xcode Log Navigator 显示没有问题

javascript - jest-resolve 嵌套模块解析错误路径 : Cannot find module 'react-dnd' from 'reactTags.js'

javascript - 如何使用 Enzyme 和 Jest 在单元测试中检查嵌套 React 组件的值

android - Mockito Uri.parse 总是返回 null

javascript - 在 VueJS 3 中全局使用 momentJS

vue.js - 我在 asyncData 中遇到非常慢的 Axios 请求

typescript - Vuex 不更新组件

reactjs - 如何测试使用自定义 TypeScript React Hook 的组件?