sinon并没有嘲笑导入功能

问题描述 投票:0回答:1

我有以下代码。 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);
  });
});
node.js sinon sinon-chai
1个回答
0
投票

如果你查看你的module.exports,你会发现没有命名函数。如果你设置你的模块如下,你会注意到apis将有一个名为doSomething的属性,你将能够存根。

module.exports = { doSomething }

© www.soinside.com 2019 - 2024. All rights reserved.