我已经看过类似的问题,但仍然无法弄清楚为什么我的sinon存根不起作用。测试仍然在调用原始函数。
userFlow.js
function authorization() {
const options = {
name: 'buzz',
state: 'bazz'
}
return options
}
const credentials = authorization()
async function main() {
return credentials.name;
}
main();
module.exports = {
authorization,
main
};
test.userFlow.js
const userFlow = require('../userFlow.js');
describe('userFlow()', function() {
it('should authorize', async function() {
options = {
name: 'foo',
state: 'bar',
};
sinon.stub(userFlow, 'authorization').returns(options);
const output = userFlow.main()
assert(output === foo)
})
})
我最终得到的结果是===嗡嗡声。
感谢帮助。
最佳答案
我认为这里的问题是操作顺序。当您这样做时...
const userFlow = require('../userFlow.js');
它运行这个...
const credentials = authorization()
因此,您的sinon优先级无关紧要。我会尝试的是这样的...
async function main(authorization) {
return authorization().name;
}
...
const output = userFlow.main(userFlow.authorization)