Sinon.JS 命令行命令

Sinon.JS Command Line Commands

我正在努力学习Sinon.JS。我已经使用 npm 安装了 Sinon.JS。在文档中的任何地方我都找不到任何命令行命令。在 sinonjs.org 网站上,"documentation" 是这样的:

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运行这个测试?

Sinon 是一个提供 "standalone test spies, stubs, and mocks for JavaScript."

的库

它"works with any unit testing framework."

关键思想是它是一个在测试框架内工作的库

它将与任何主要的 JavaScript 测试框架一起工作,例如 Jest, Jasmine, Mocha


例如,要使用 SinonJest 执行问题的测试,请执行 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 是通过来自 Jestexpect 断言实现的。

然后 运行 Jest 并且它将 使用 Sinon 当它 运行s code.test.js.