Я использую Mocha и должен для тестирования простых запросов к базе данных, я пытаюсь запустить тесты Async для простых функций схемы Moongose, но каждый раз я получаю таймаут превышенную ошибку.превышение таймаута превысило ошибку в тестах Async Mocha
Error: timeout of 15000ms exceeded
at null.<anonymous> (/usr/local/lib/node_modules/mocha/lib/runnable.js:165:14)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
Я даже использовал this.timeout (15000), а также пытались --timeout 15000 в команде мокко но не увенчались успехом, что когда-либо таймаут время я даю Я получаю эту ошибку. Проходят только синхронные тесты. Ниже приведены мои тесты и функции, которые я хочу проверить.
Мои Мокко Тест: -
describe('#getFacility()', function() {
this.timeout(15000);
it('should get facility successfully', function (done) {
db.getFacilites(Data.testFacility, function (err, facilities) {
if (err) throw err;
facilities.Name.should.equal(Data.testFacility.body.Name);
done();
})
});
});
Мои данные: -
testFacility : {
params: { clientId:"51c85c3267b6fc1553000001" }
},
Мой Get Функция
getFacilites: function (req, res) {
Facility.find({Client: req.params.clientId}, function (err, facilities) {
if(err) {
res.send(500,err);
} else if (!facilities) {
res.send(404, "facilities not found");
} else if (req.query.format && req.query.format === 'select') {
var result = facilities.map (function (f) {
return { value: f._id.toString(), text: f.Name }
});
res.json(result);
} else {
console.log("Cannot Retrieve Facilities");
}
});
}
I Ev ru также создала новую отдельную функцию для запроса, но она все еще не работает. любые идеи, которые функционируют, выглядят так.
describe('#getFacility() direct from DB', function() {
it('should get facility successfully from db', function (done) {
Client_data.Facility.find({Client: Data.testFacility.params.clientId}, function(err, facilities) {
if (err) throw (err);
if (facilities) {
facilities.forEach(function (f) {
console.log(f);
});
done();
}
});
});
});
При попытке вызова сделать() обратный вызов после запроса, тест проходит, но это тоже не хорошо выглядеть мне.
describe('#addFacility()', function() {
it('should add facility successfully', function (done) {
API_Calls.addFacility(Data.testFacility, function (doc) {
doc.Name.should.equal(Data.testFacility.body.Name);
});
done();
});
});
Я использовал req, res и next, потому что эта функция вызывается в результате запроса app.get к URL-адресу. 'app.get ('/ api/facility /: clientId', db.getFacilites);' –
@SulemanMirza Затем вам нужно протестировать его как обработчик маршрута, передав (возможно, макет) 'Request',' Response' и 'функция (ERR)'. Или рефакторинг, чтобы у вас было 2 функции - 1) для запроса, 2) для обработчика маршрута - поэтому первый (запрос) может использоваться в тесте, как он, кажется, ожидает. –
Спасибо, что помогли Джонатану, теперь я попробовал с отдельной функцией для запроса, но он все еще не работает. Все еще время ожидания превысило ошибку. –