Моя тестовая функция выглядит следующим образом:
const testLibrary = require("./test");
describe("Top Test", function() {
it("should test function", function(done) {
testLibrary.print();
done();
});
});
test.ts имеет следующие две функции:
export function stubMe() {
console.log("original function");
}
export function print() {
stubMe();
}
Когда я запускаю тест, он печатает: «оригинальная функция»
Я сейчас пытаюсь заглушить мой тест следующим образом:
const testLibrary = require("./test");
const sinon = require("sinon");
const stubMe = sinon.stub(testLibrary, "stubMe");
stubMe.yields();
describe("Top Test", function() {
it("should test function", function(done) {
testLibrary.print();
done();
});
});
Моя тестовая функция все еще печатает «оригинальную функцию», указывая, что функция не была заглушена.
Как заглушить функцию stubMe?
Обновление:
Я изменил свой код на основе приведенного ниже решения Ankit:
const sinon = require("sinon");
const testLibrary = require("./test");
testLibrary.stubMe();
const stubMe = new sinon.stub(testLibrary, "stubMe").callsFake(function () {
console.log("console from stub");
});
testLibrary.stubMe();
describe("Top Test", function () {
it("should test function", function (done) {
testLibrary.print();
done();
});
});
Как ни странно, это печатает:
original function
console from stub
Top Test
original function
Почему заглушка возвращается во время теста?