【问题标题】:How to mock a component method?如何模拟组件方法?
【发布时间】:2019-09-08 16:31:52
【问题描述】:

我只是想找出在存储操作之后是否调用了组件方法,但我收到了这个错误:

expect(jest.fn())[.not].toHaveBeenCalled()

jest.fn() value must be a mock function or spy.
Received:
  function: [Function bound mockConstructor]

这是我的单元测试:

describe('MyComponent.spec.js', () => {
  let methods = {
    setLocation: jest.fn()
    // more methods...
  }

  it('calls setLocation on undo/redo', () => {
    let wrapper = mount(MyComponent, {
      store,
      localVue,
      methods
    })

    store.dispatch('doUndo')
    expect(wrapper.vm.setLocation).toHaveBeenCalled()
  })
})

不确定这是否是一个好习惯,但我正在使用实际的商店和本地 Vue 实例。

【问题讨论】:

    标签: javascript vue.js vuejs2 jestjs vue-test-utils


    【解决方案1】:

    要验证模拟方法,请使用实际模拟变量本身(不是通过wrapper):

    expect(methods.setLocation).toHaveBeenCalled()
    

    【讨论】:

      猜你喜欢
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 2017-06-09
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      相关资源
      最近更新 更多