У меня проблема с некоторыми тестами мокко в узле - я тестирую модель и вызываю метод модели, чтобы получить ответ - просто метод Model.findOne.NodeJS - Модель тестирования, не получающая обратный вызов
В основной базе кода он возвращается, как и ожидалось, (как и при запросе в базе данных), но при тестировании он не достигает обратного вызова, а тесты просто тайм-аут .. любые идеи, что может быть проблемой?
Выход из Mocha:
1) user model tests check user exists email should equal input: [email protected]:
Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.
Для меня это похоже на проблемы с конфигурацией - Но я не могу работать, где.
Код ниже:
userTest.js
var Chance = require('chance');
var expect = require('chai').expect;
var supertest = require('supertest');
var api = supertest('http://localhost:3000');
var chance = new Chance();
var User = require('../api/models/UserModel').User;
var validUser = {
email: '[email protected]',
password: "123456"
};
describe.only('user model tests', function() {
describe('check user exists', function() {
it("email should equal input: " + validUser.email, function (done) {
User.findOneByEmail(validUser.email, function (err, result) {
expect(result.email).to.equal(validUser.email);
done();
});
});
});
});
UserModel.js
UserSchema.statics.findOneByEmail = function(email, callback) {
this.findOne({email: email}, function (err, user) {
if (err) {
return callback(systemError());
}
if (!user) {
return callback(fileNotFoundError());
}
return callback(null, user);
});
};
Вы можете показать список функций 'User.findOneByEmail'? Я думаю, что это может быть причиной неприятностей. Возможно, это порождает ошибку, и выполнение этой функции останавливается на этой функции. – vodolaz095
Я добавил его. Я использую ту же функцию в других частях кода, и он работает так, как ожидалось, я просто не получаю никакого ответа в тестовой среде. –
Вы должны использовать «user.findOneByEmail», потому что вы уже ввели «Пользователь» в «user». – sayume