我有以下代码。 Sinon无法模拟doSomething()并打印实际字符串而不是'hello'
//file.js
import { doSomething } from 'my-npm-package';
module.exports = () => doSomething();
这是测试文件:
//file.spec.js
import sinon from 'sinon';
import { expect } from 'chai';
import * as apis from 'my-npm-package';
import someFunction from '../file';
describe('TEST', () => {
let stub;
beforeEach(() => {
stub = sinon.stub(apis, 'doSomething').returns('hello');
});
afterEach(() => {
stub.restore();
});
it('test', async () => {
someFunction();
expect(stub.calledOnce).to.equal(true);
});
});
答案 0 :(得分:0)
如果查看module.exports,您会注意到没有命名函数。如果按如下所示设置模块,则会注意到apis
上将有一个名为doSomething
的属性,您可以对其进行存根。
module.exports = { doSomething }