Очень простой шпион с Sinon.JS (по вызову глобального модуля) ... не работает, что не так? - PullRequest
0 голосов
/ 03 июня 2019

Мой испытуемый loader.ts:

import * as dotenv from 'dotenv';

export class SimpleLoader {
  public load() {
    dotenv.config(); // I want to spy on this call
  }
}

Итак, используя Sinon.JS (вместе с Mocha и Chai), я сделал следующее в loader.spec.ts:

import * as dotenv from 'dotenv';
import * as sinon from 'sinon';

describe('SimpleLoader', function() {
  // First spy on, then require SimpleLoader
  beforeEach(function() {
    this.dotenvSpy = sinon.spy(dotenv, 'config');
    this.SimpleLoader = require('./loader').SimpleLoader;
  });

  it('loads correctly using default options', function() {
    const loader = new this.SimpleLoader();
    loader.load(); // the call that should call the spy!

    console.log(this.dotenvSpy.getCalls()); // NOT WORKING - no calls, empty array []
  });

  afterEach(function() {
    this.dotenvSpy.restore();
  });
});

Проблема в том, что заглушка никогда не вызывается.

...