So habe ich diese Methode, die ich testen wollen:Wie verwenden Sie SinonJS für Callback-Methoden?
app.get('/test', exposeDb, function(req, res) {
req.dbService.getUserByID(function(err, result) {
if (result == 5) {
res.statusCode = 200;
}
else {
res.statusCode = 500;
}
});
});
Und ich versuche es so die getUserByID Methode liefert so einen Wert Stummel ich dies tun:
describe('Test', function() {
beforeEach(function() {
var getUserByIDStubE = sinon.stub(dbService, 'getUserByID').callsFake(() => {
return 5;
});
});
it('TESTSETSTETS', function(done) {
chai.request(server)
.get('/test')
.send({})
.end(function (err, res) {
res.should.have.status(200);
});
done();
});
});
Das Problem ist, Der Code in der req.dbService.getUserByID wird nie aufgerufen, so dass ich die Logik nicht überprüfen kann, ob das "Ergebnis" gleich 5 ist oder nicht.
Wenn ich console.log (req.dbService.getUserByID()), die tatsächlich den Stubbed-Wert von 5 zurückgibt. Aber ich weiß nicht, wie es beim Rückruf funktioniert.
Wie mache ich es so, dass es in meinem Beispiel 5 zurückgibt (um dann den res.statusCode zu überprüfen)?
Vielen Dank im Voraus!
Letzte Sache, wenn meine Methode einen Parameter wie "req.dbService.getUserByID (req.body, ...)" wie req.body, wie würde ich diesen Parameter mit Sinon stub? Vielen Dank! Ich werde upvote. –