0
非同期で発行されたイベントが放出されたときにsinon.jsを使ってどのようにテストできますか?node.jsタイムアウトを使用せずにsinon.jsを使用してイベントが送出されたかどうかのテスト
私がやっていることは、イベントがうまく放出されることを知っているタイムアウトを設定することですが、それは醜いものであり、テストの合計時間に足りるかもしれません。
it('check that event was called', function(done) {
...
var spy = sinon.spy();
var cbSpy = sinon.spy();
obj.on('event', spy);
obj.func(cbSpy); // emits event 'event' asynchronously and calls cbSpy after it was emitted
setTimeout(function() {
sinon.assert.calledOnce(spy, 'event "event" should be emitted once');
sinon.assert.calledOnce(cbSpy, 'func() callback should be called once'); // won't work since the callback will be called only after the event has been emitted and all event listeners finished
}, 1000);
});