sinon-spy-utils
This package is a collection of util functions to make your life easier when using Sinon.js.
At the moment, it contains 3 functions: Mock
(creating fake objects), SpyAndDo
(scoped spy) and StubAndDo
(scoped stub).
Installation
Node Installation
npm install sinon-spy-utils
You can then SpyUtils = require('sinon-spy-utils')
or import { Mock } from 'sinon-spy-utils'
.
Browser Installation
Use the minified UMD build in the dist
folder: here.
It exports a global window.SinonSpyUtils
when imported as a <script>
tag.
Usage
Every code snippet will be presented in 3 different styles: Node.js require
, Node.js import
and Browser Javascript (with required HTML <script>
s).
Mock
This function creates a mock object containing functions corresponding to the provided names.
var Mock = require('sinon-spy-utils').Mock;
...
var fakeUser = Mock('getName', 'getAvatar', 'getAge');
import { Mock } from 'sinon-spy-utils';
...
const fakeUser = Mock('getName', 'getAvatar', 'getAge');
<script src="sinon.min.js"></script>
<script src="sinon-spy-utils.min.js"></script>
...
var fakeUser = SinonSpyUtils.Mock('getName', 'getAvatar', 'getAge');
SpyAndDo
This function will spy the listed functions of the provided object and call the provided function. The spied functions will be restored whatever happens.
var SpyAndDo = require('sinon-spy-utils').SpyAndDo;
...
SpyAndDo(console, 'error', 'log', function (spies) {
functionThatCallsConsoleLog();
expect(spies.log).to.have.been.called;
});
import { SpyAndDo } from 'sinon-spy-utils';
...
SpyAndDo(console, 'error', 'log', (spies) => {
functionThatCallsConsoleLog();
expect(spies.log).to.have.been.called;
});
<script src="sinon.min.js"></script>
<script src="sinon-spy-utils.min.js"></script>
...
SinonSpyUtils.SpyAndDo(console, 'error', 'log', function (spies) {
functionThatCallsConsoleLog();
expect(spies.log).to.have.been.called;
});
StubAndDo
This function will stub the listed functions of the provided object and call the provided function. The stubbed functions will be restored whatever happens.
var StubAndDo = require('sinon-spy-utils').StubAndDo;
...
StubAndDo(console, 'error', 'log', function (spies) {
functionThatCallsConsoleLog();
expect(spies.log).to.have.been.called;
});
import { StubAndDo } from 'sinon-spy-utils';
...
StubAndDo(console, 'error', 'log', (spies) => {
functionThatCallsConsoleLog();
expect(spies.log).to.have.been.called;
});
<script src="sinon.min.js"></script>
<script src="sinon-spy-utils.min.js"></script>
...
SinonSpyUtils.StubAndDo(console, 'error', 'log', function (spies) {
functionThatCallsConsoleLog();
expect(spies.log).to.have.been.called;
});
License
MIT, Copyright (c) 2017-2020 Louis Brunner