我编写了一个函数,它使用mongoose删除mongodb中的数据并保存在单独的文件夹DB.js中,代码看起来像
delete_user : function(data) {
connection.findOne({email:data}, function(err, result) {
connection.findById(result.id, function(err, val) {
if(err) {
throw err;
}
connection .findByIdAndRemove(val.id, function(err) {
if(err) {
throw err;
}
});
});
});
},
连接mongodb所需的连接写在其他文件
中在测试文件中(用mocha框架编写),我需要该文件并调用此函数
after('Flust out the created user', function(done) {
Db.delete_user(req_body.email);
console.log("User "+req_body.email+" deleted");
done();
})
相同的代码使用两个不同的测试文件,例如a.test.js和b.test.js
当我使用mocha
运行测试文件时它会抛出错误
Error: timeout of 10000ms exceeded. Ensure the done() callback is being called in this test.
在数据库中删除从文件a.test.js创建的用户 从文件b.test.js创建的用户不会被删除并抛出错误
答案 0 :(得分:0)
在你的函数中添加回调:
delete_user : function(data, callback) {
connection.findOne({email:data}, function(err, result) {
connection.findById(result.id, function(err, val) {
if(err) {
throw err;
}
connection .findByIdAndRemove(val.id, function(err) {
if(err) {
throw err;
}
return callback();
});
});
});
},
然后:
after('Flust out the created user', function(done) {
Db.delete_user(req_body.email, function(){
console.log("User "+req_body.email+" deleted");
done();
});
})