kod do testowaniaJednostka Funkcja testowa, która zwraca Mongoose obiecują
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
}
});
});
testów jednostkowych
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();
});
});
test dostaje miarę powrotnej user.save() razy potem na zewnątrz. Wygląda na to, że brakuje mi czegoś w testach jednostkowych, ale nie zgłoszono błędu. Używam obiecanego przez siebie grzechu, aby rozwiązać obietnicę, ale wydaje się, że to nie widzi.
gdy userCreate jest trafiony z klientem spoczynku to działa bez zarzutu I wykluczona odpowiedź dla jasności, ale test nie jest osiągnięciem po powrocie funkcji userCreate.then ' – mattwilsn