Команды командной строки Sinon.JS - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь выучить Sinon.JS. Я установил Sinon.JS, используя npm. Нигде в документации я не могу найти никаких команд командной строки. На сайте sinonjs.org есть «документация», такая как:

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();

    assert(callback.called);
});

Как мне запустить этот тест с использованием Sinon.JS?

1 Ответ

0 голосов
/ 15 января 2019

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.

...