Sinon - это библиотека, которая предоставляет «автономные тестовые шпионы, заглушки и макеты для JavaScript».
«Работает с любой структурой модульного тестирования».
Основная идея заключается в том, что это библиотека, которая работает в рамках тестирования .
Он будет работать с любой из основных платформ тестирования JavaScript, таких как Jest , Jasmine , Mocha и т. Д.
Например, чтобы реализовать тест из вопроса, используя Sinon
и Jest
, сделайте npm install --save-dev sinon
, чтобы добавить Sinon
, затем выполните npm install --save-dev jest
, чтобы добавить Jest
, и добавьте тестовый файл (что-то вроде src/code.test.js
) со следующим кодом:
import * as sinon from 'sinon';
function once(fn) {
var returnValue, called = false;
return function () {
if (!called) {
called = true;
returnValue = fn.apply(this, arguments);
}
return returnValue;
};
}
it('calls the original function', function () {
var callback = sinon.fake();
var proxy = once(callback);
proxy();
expect(callback.called).toBe(true); // SUCCESS
});
Обратите внимание, что assert
в последней строке реализовано в этом случае с утверждением expect
из Jest
.
Затем запустите Jest
, и он будет использовать Sinon
при запуске code.test.js
.