如何testing节点中的事件发射器

可以说我想写这个简单的任务。 但我想写一个testingvalidation:

  1. 这个任务发射物体。
  2. 对象有一个属性名称。

我正在testing摩卡和柴期望。

提前致谢。 我已经尝试了所有可能的变体,但不能提出解决scheme。

var util = require('util'), EventEmitter = require('events').EventEmitter; function SomeTask() { var self = this; setInterval(function() { self.emit('data', { name: 'name' }); }, 5000); } util.inherits(SomeTask, EventEmitter); module.exports = SomeTask; 

这是一个使用间谍的例子。 https://github.com/mochajs/mocha/wiki/Spies

 var sinon = require('sinon'); var EventEmitter = require('events').EventEmitter; describe('EventEmitter', function(){ describe('#emit()', function(){ it('should invoke the callback', function(){ var spy = sinon.spy(); var emitter = new EventEmitter; emitter.on('foo', spy); emitter.emit('foo'); spy.called.should.equal.true; }) it('should pass arguments to the callbacks', function(){ var spy = sinon.spy(); var emitter = new EventEmitter; emitter.on('foo', spy); emitter.emit('foo', 'bar', 'baz'); sinon.assert.calledOnce(spy); sinon.assert.calledWith(spy, 'bar', 'baz'); }) }) })