Events 测试以查看事件是否正在使用jest运行
我试图想出一个场景来实际测试事件是否正在运行。我的大脑是这样工作的。我注册了一个监听器,我希望间谍被调用,但不是吗Events 测试以查看事件是否正在使用jest运行,events,jestjs,event-handling,Events,Jestjs,Event Handling,我试图想出一个场景来实际测试事件是否正在运行。我的大脑是这样工作的。我注册了一个监听器,我希望间谍被调用,但不是吗 const EventEmitter = require('events') const ee = new EventEmitter() describe('Event Emitter', () => { it('Emit Listener', () => { ee.on('test', function() {}) const spy =
const EventEmitter = require('events')
const ee = new EventEmitter()
describe('Event Emitter', () => {
it('Emit Listener', () => {
ee.on('test', function() {})
const spy = jest.spyOn(ee, 'on')
ee.emit('test')
expect(spy).toHaveBeenCalledTimes(1)
})
})
jest.spyOn(ee,'on')
设置一个间谍,可以测试在此之后是否调用了ee.on(…)
。由于不是这样,测试失败了。间谍不可能有追溯力。相反,应该在调用它之前设置它:
const spy = jest.spyOn(ee, 'on')
ee.on('test', function() {})
expect(spy).toHaveBeenCalledTimes(1)
expect(spy).toHaveBeenCalledWith(expect.any(Function))
或者,如果目标是测试事件,则应:
const spy = jest.fn()
ee.on('test', spy)
ee.emit('test')
expect(spy).toHaveBeenCalledTimes(1)