测试事件是否 运行 开玩笑
Testing to see if an event is running with jest
我正在想一个场景来实际测试事件是否 运行。这就是我的大脑是如何工作的。我注册了一个侦听器,我期待间谍被调用,但它不是?
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))
或者如果objective是测试事件,应该是:
const spy = jest.fn()
ee.on('test', spy)
ee.emit('test')
expect(spy).toHaveBeenCalledTimes(1)
我正在想一个场景来实际测试事件是否 运行。这就是我的大脑是如何工作的。我注册了一个侦听器,我期待间谍被调用,但它不是?
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))
或者如果objective是测试事件,应该是:
const spy = jest.fn()
ee.on('test', spy)
ee.emit('test')
expect(spy).toHaveBeenCalledTimes(1)