Моя цель — провести интеграционный тест, который проверяет модуль узла, который сохраняет значения в файле redis. Вот тест:
require('coffee-script');
var should = require('should')
, redis = require('redis')
, async = require('async')
, Domain = require('../index');
async.series([
function(callback){
db = redis.createClient();
callback(null,'zero');
},
function(callback){
db.flushdb( function (err, didSucceed) {
if(err){
console.log('error: ' + err.message);
callback(err, 'one');
}
});
callback(null, 'one');
},
function(callback){
should.exist(Domain);
domain = new Domain({'attOne':1, 'attTwo':2, 'id':1});
domain.should.have.property('save');
domain.should.have.property('attOne');
domain.should.have.property('attTwo');
domain.save.should.be.an.instanceof(Function);
callback(null, 'two');
},
function(){
db.end();
}
],
function(err, results){
if(err){
console.log('error encountered: ' + err.message);
db.end();
}
console.log('All tests passed');
}
);
В этом тесте проблема заключается в том, что соединение redis закрывается до того, как redis очищает базу данных (если я вообще удаляю db.end(), тест зависает, но redis db очищается). По-видимому, async.series не работает, как я ожидаю, когда каждая функция запускается перед следующей в последовательном порядке, или я неправильно понимаю? как обеспечить выполнение этого теста в последовательном потоке, чтобы соединение Redis не закрывалось перед сбросом? ... любые рекомендации любых библиотек/фреймворков, которые могли бы помочь мне в том, что я пытаюсь здесь сделать? Благодарю вас