嗨,我是JavaScript的新手。我正在用javascript实现函数上的发射器,并且在使用茉莉花框架测试它时遇到了麻烦。下面是打开的功能发射器和用于测试功能的代码。
//main.js
Emitter.prototype.on = function (event, listener)
{
if (typeof this.events[event] !== 'object')
{
this.events[event] = [];
}
this.events[event].push(listener);
};
//test.js
describe('#on', () =>
{
it('should subscribe to an event name and be called when
triggered', () =>
{
Emitter.on(EVENT_NAME_ONE, spyFunction);
//Emitter.trigger(EVENT_NAME_ONE);
expect(spyFunction.calls.count()).toBe(1);
});
上述测试失败。我不知道为什么。有人可以帮我吗谢谢。
最佳答案
错误显示Emitter.on未定义。请参见this thread。on
是在Emitter实例上定义的。
class Emitter {
constructor() {
console.log('created Emitter!')
}
on(event, callback) {
console.log('on')
}
}
a = new Emitter()
=> created Emitter!
a.on()
=> on