この単純なタスクを書きたいとしましょう。しかし、私はそれを検証するテストを書きたい:
私はモカとチャイでテストしています。
前もって感謝します。私は思いついたすべての可能なバリアントを試しましたが、解決策を思い付くことができませんでした。
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');
})
})
})