Мой испытуемый 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();
});
});
Проблема в том, что заглушка никогда не вызывается.