1
我已經爲異步瀑布編寫了一個mocha測試用例,「function2」是調用mongodb獲取數據的模塊,當我試圖在node.js中運行相同的代碼時這個異步代碼的作品,但當我做摩卡測試MongoDB的「function2」調用拋出錯誤說:「[錯誤:無法確定服務器的狀態]」。如何編寫異步瀑布的Mocha測試
我知道測試快速執行而不等待mongodb連接並返回結果的原因。
有人可以告訴我如何解決這個問題。提前致謝。
var function1 = require('../../method1');
var function2 = require('../../method2');
var function3 = require('../../method3');
describe('controller : ', function() {
it('should not return error', function (done) {
async.waterfall([
function(callback){
function1.method1(app.request, app.response, function(err,result) {
if(err){
callback(err,null);
}
else{
var var1 = result;
callback(null, var1);
}
});
},
function(var1, callback){
//Here I have a Mongodb Call
function2.method2(var1,function(err,result) {
if(err) {
callback(err,null);
}
else{
var var2= result;
var context = {
"c1": var1,
"c2": var2
};
callback(null, context);
}
});
},
function(context, callback){
function2.method2(context, function(err,result) {
if(err){
console.error(err);
callback(err,null);
}
else{
context.c3 = {};
result.forEach(function(e, i) {
for(var key in e) {
context.c3[key] = e[key];
}
});
callback(null, context);
}
});
},
function(context, callback){
should.exist(context);
}
],
function (err, result) {
should.not.exist(err);
should.exist(result);
});
});
});
你同時解決了嗎? – Rocco