[英]Sinon stub not replacing function in test
我已经查看了类似的问题,但仍然无法弄清楚为什么我的 sinon 存根不起作用。 测试还是调用原来的function。
用户流.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)
})
})
我最终得到 output === 嗡嗡声。 感谢帮助。
我认为这里的问题是操作顺序。 当你这样做...
const userFlow = require('../userFlow.js');
它运行这个...
const credentials = authorization()
所以你的 sinon 覆盖并不重要。 我会尝试的是这样的......
async function main(authorization) {
return authorization().name;
}
...
const output = userFlow.main(userFlow.authorization)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.