だから私は、私がテストしたいこの方法がありますので、私はこれを行うSinonJSをコールバックメソッドにどのように使用しますか?
app.get('/test', exposeDb, function(req, res) {
req.dbService.getUserByID(function(err, result) {
if (result == 5) {
res.statusCode = 200;
}
else {
res.statusCode = 500;
}
});
});
をそして、私はgetUserByIDメソッドが値を返すので、それをスタブしようとしている:
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();
});
});
問題があり、 req.dbService.getUserByID内のコードは呼び出されないので、「結果」が5に等しいかどうかのロジックをチェックすることはできません。
私がconsole.log(req.dbService.getUserByID())を実行すると、実際にスタブされた値5が返されます。しかし、コールバックの仕組みは分かりません。
私はどのようにして私の例で5を返すようにしますか?(res.statusCodeをチェックします)
ありがとうございます!
最後に、私のメソッドがreq.bodyなどの "req.dbService.getUserByID(req.body、...)"などのパラメータを取る場合、このパラメータをSinonでどのようにスタブするのですか? ありがとうございます!私はupvoteします。 –