Skip to content

dongryphon/assertly-sinon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

assertly-sinon

An assertly (npm) add-on package for sinon (npm).

Build Status Dependencies Status npm version MIT Licence

If you are using sinon, this module expands Assertly with new words specific to testing spy and spyCall objects created by sinon. For example:

expect(spy).to.always.return(42);

Installation

To install using npm:

$ npm install assertly-sinon --save-dev

To install using yarn:

$ yarn add assertly-sinon --dev

Usage

To use this add-on, pass its init() method to Assert.register() like so:

const Assert = require('assertly');
const AssertlySinon = require('assertly-sinon');

Assert.register(AssertlySinon.init);

Improved Output (Optional)

By default, spys and spyCalls do not print cleanly using Node.js inspect() method. To improve this, you can use prettySpy:

let spy = AssertlySinon.prettySpy(sinon.spy(object, method));

The prettySpy method ensures that the spy and any spyCalls it returns from getCall have a suitable inspect() method.

API

The sinon API provides many kinds of helpers for spying and mocking. The API's provided by this add-on are designed to make BDD-style assertions for sinon's spys and spyCalls. To make it clear which sinon types work in specific contexts, the names used for parameters are chosen to convey this as shown below:

  • spy - A spy created by sinon.spy()
  • spyCall - A call to a spy returned by sinon.spy().getCall()
  • spyOrCall - Either a spy or a spyCall

See these documents for the mapping of the sinon Spy API and Spy Call API.

Assertions

Properties

Modifiers

This add-on adds new modifiers to Assertly.

always

The always modifier is used by return and throw assertions when operating on a spy.

About

Assertly add-on for sinon

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%