グローバル イベント エミッターに基づいて実行される一連のモジュールがあります。それらは、次のように時系列の一連のイベントに基づいて実行されます。
- 起動準備完了
- サーバーが作成されました (boot.ready イベントのため)
- サーバーが構成されている (server.created イベントのため)
そのため、時系列でテストを実行する server-test.js を作成する必要があります。
これはモカで可能ですか?以下のようなものですか?
var EventEmitter2 = require('eventemitter2').EventEmitter2,
should = require('should');
describe('server', function() {
var mediator = new EventEmitter2({
wildcard: false
});
require('../../src/routines/server/creator')(mediator);
require('../../src/routines/server/configurer')(mediator);
it('should be created after boot', function(done) {
mediator.once('server.created', function(server) {
server.should.exist;
done();
});
it('should be configured after created', function(done) {
mediator.once('server.configured', function() {
done();
});
});
mediator.emit('boot.ready');
});
});
このグローバル イベント エミッターの動作方法について混乱があるように思われたため、これがserver/creator.js
モジュールです。
module.exports = function(mediator) {
var express = require('express');
mediator.once('boot.ready', function() {
var server = express.createServer();
//event: server created
mediator.emit('server.created', server);
});
};
ご覧のとおり、サーバーは の後に作成されboot.ready
ます。これが起動server.created
し、その後、configurer が実行されて起動しますserver.configured
。
この一連のイベントは mocha でテストする必要があります。