繁体   English   中英

Sinon 存根在测试中未替换 function

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM