У меня есть набор модулей, которые запускаются на основе глобального эмиттера событий. Они бегут на основе хронологической цепочки событий, например, так:Как выполнить тесты мокки в хронологическом порядке?
- boot.ready
- сервер создал (из-за boot.ready события)
- сервер сконфигурирован (из-за server.created события)
Как таковой, мне нужно создать server-test.js, который выполняет тесты в хронологическом порядке.
Возможно ли это с помощью Mocha? Что-то вроде следующего?
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
, после чего запускается конфигуратор, который затем запускает server.configured
.
Эта цепочка событий должна быть проверена мокко.
Трюк, но это сделало бы это ... – Tom