如何模拟组件方法?
Posted
技术标签:
【中文标题】如何模拟组件方法?【英文标题】: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 实例。
【问题讨论】:
【参考方案1】:要验证模拟方法,请使用实际模拟变量本身(不是通过wrapper
):
expect(methods.setLocation).toHaveBeenCalled()
【讨论】:
以上是关于如何模拟组件方法?的主要内容,如果未能解决你的问题,请参考以下文章
Spring JUnit:如何在自动装配组件中模拟自动装配组件