Unexpected-sinon
This module extends the
Unexpected assertion
library with integration for the Sinonjs
mocking library.
expect(spy, "was called twice");
expect(spy, 'was called with', { foo: 'bar' }, 'baz', sinon.match.truthy);
expect(obj.spy, 'was always called on', obj);
Run the test in the browser
How to use
Node
Install it with NPM or add it to your package.json
:
$ npm install unexpected
Then:
var expect = require('unexpected-sinon');
Browser
Include the unexpected.js
found at the lib directory of this
repository.
<script src="sinon.js"></script>
<script src="sinon/spy.js"></script>
<script src="sinon/stub.js"></script>
<script src="sinon/mock.js"></script>
<script src="sinon/collection.js"></script>
<script src="sinon/assert.js"></script>
<script src="sinon/sandbox.js"></script>
<script src="sinon/test.js"></script>
<script src="sinon/test_case.js"></script>
<script src="sinon/assert.js"></script>
<script src="sinon/match.js"></script>
<script src="unexpected.js"></script>
<script src="unexpected.sinon.js"></script>
this will expose the expect function under the following namespace:
var expect = weknowhow.expect;
RequireJS
Include the library with RequireJS the following way:
define(['unexpected-sinon/lib/unexpected.sinon.js'], funtion (expect) {
});
API
was not called
Passes if spy was called at least once.
expect(spy, 'was not called');
was called
Passes if spy was never called.
expect(spy, 'was called');
was called once
Passes if spy was called once and only once.
expect(spy, 'was called once');
was called twice
Passes if spy was called exactly twice.
expect(spy, 'was called twice');
was called thrice
Passes if spy was called exactly three times.
expect(spy, 'was called thrice');
was called times
Passes if the spy was called exactly num times.
expect(spy, 'was called times', 42);
given call order
Passes if the provided spies where called in the specified order.
expect([spy0, spy1, spy2], 'given call order');
was called on
Passes if the spy was ever called with obj as its this value.
expect(obj.spy, 'was called on', obj);
was always called on
Passes if the spy was always called with obj as its this value.
expect(obj.spy, 'was always called on', obj);
was called with
Passes if the spy was called with the provided arguments.
expect(spy, 'was called with', { foo: 'bar' }, 'baz', sinon.match.truthy);
was always called with
Passes if the spy was always called with the provided arguments.
expect(spy, 'was always called with', { foo: 'bar' }, 'baz', sinon.match.truthy);
TODO
was never called with
Passes if the spy was never called with the provided arguments.
was called with exactly
Passes if the spy was called with the provided arguments and no others.
was always called with exactly
Passes if the spy was always called with the provided arguments and no others.
threw
Passes if the spy threw the given exception. The exception can be a
string denoting its type, or an actual object. If only one argument is
provided, the assertion passes if the spy ever threw any exception.
always threw
Like above, only required for all calls to the spy.