我有一个正在尝试测试的方法,该方法是通过像这样的回调调用的:
sessionService.getSession(req, res, req.query.state, handleSessionResponse);
有没有一种方法,可以使用Sinon模拟getSession
方法和调用函数中的原始回调(handleSessionResponse
)?换句话说,我并不关心getSession
的实现,但是我还是想委托给handleSessionResponse
进行测试。
以下是该文件的示例:
handleSessionResponse(err, data, response) {
// get to this point and make assertions
}
sessionService.getSession(req, res, req.query.state, handleSessionResponse);
答案 0 :(得分:0)
尝试一下。
const sinon = require('sinon')
const { mockReq, mockRes } = require('sinon-express-mock')
let request = {
query:{
state:{}
}
}
const req = mockReq(request)
const res = mockRes()
sinon.stub(sessionService, 'getSession').callsFake((req, res, req.query.state, callback) => {
callback(null, {}, {})
});
回调应调用原始的handleSessionResponse