Синон не издевается над импортной функцией - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть следующий код.Синону не удалось смоделировать 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 голосов
/ 01 марта 2019

Если вы посмотрите на свой module.exports, вы заметите, что нет названной функции.Если вы установите свой модуль, как показано ниже, вы заметите, что apis будет иметь свойство с именем doSomething, которое вы сможете заглушить.

module.exports = { doSomething }

...