如何使用 sinon 覆盖在 Node.js 中的控制器函数中定义的函数。
responseParser
,我们将其作为 genericAPICall
参数传递给 successCallback
函数,该参数将由 genericAPICall
函数调用并进行解析来自 genericAPICall
在这种情况下,responseParser
没有得到测试覆盖率,如何模拟它以得到覆盖率?
下面的代码
//route.js
const controller = reuqire('./controller.js')
router.get('/search', controller.search)
// genericFetch.js
const genericAPICall = (req, res, apiMethod, successCallback) => {
//do some fetch
//on success 444``` status call the successCallback function
fetch('urs')
.then(res => {
successCallback(res)
})
}
//controller.js
search = (req, res) => {
const responseParser = (response) => {
// do something with response
return response
}
utils.genericAPICall(
req,
res,
'GET',
successCallback: responseParser
)}
//route.test.js
const utils = require( './utils.js')
describe('test the route', () => {
beforeEach(()=>{
sinon.stub(utils, 'genericAPICall').resolves({statusCode: 200})
})
it('test the search route', (done) => {
chai
.request(app)
.get('/search')
.set('token', 'test1234')
.send({name: 'abcd'})
.end(err, res) => {
expect(res.statusCode).to.equal(```200```);
done
})
})
})