код для тестированияблок Функция тестирования, которая возвращает Мангуст обещают
import { User } from '../models/no-sql/user';
function userCreate(req) {
const user = new User({
username: req.username,
password: req.password
});
return user.save();
}
app.get('/userCreate', function(req, res) {
User.findOne({ username: req.username }).lean().exec((err, data) => {
if(data){
userCreate(req).then(function() {
// success
}, function(err) {
// error
});
}else{
// no user found
}
});
});
тестовое устройство
require('sinon-as-promised');
import request from 'supertest';
const user = {
username: newUserName,
password: 'password'
};
factory.build('user', user, function(err, userDocument) {
UserMock.
expects('findOne').withArgs(sinon.match.any)
.chain('lean')
.chain('exec')
.yields(null, undefined);
const docMock = sinon.mock(userDocument);
docMock.expects('save')
.resolves([]);
request(app)
.post('/userCreate')
.send({username: newUserName, password: 'password')
.expect(200)
.end((err, res) => {
if(err) done(err);
should.not.exist(err);
should.equal(res.body.success, true);
done();
});
});
тест GetS, насколько возвратного user.save(), то тайм-аут. Кажется, что я пропускаю что-то в модульных тестах, но ошибка не возникает. Я использую синон, как обещал разрешить обещание, но он, похоже, не видит этого.
когда userCreate ударил с отдыхом клиентом она работает нормально я исключил ответ для ясности, но тест не достигающее возвращения после функции userCreate.then ' – mattwilsn