sinon没有嘲笑导入功能

时间:2019-02-28 19:37:44

标签: node.js sinon sinon-chai

我有以下代码。 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);
  });
});

1 个答案:

答案 0 :(得分:0)

如果查看module.exports,您会注意到没有命名函数。如果按如下所示设置模块,则会注意到apis上将有一个名为doSomething的属性,您可以对其进行存根。

module.exports = { doSomething }