Backbone assertions for the Chai assertion library
npm install chai-backbonechai-backbone
=============


chai-backbone is an extension to the chai assertion library that
provides a set of backbone specific assertions.
Use the assertions with chai's expect or should assertions.
Dependencies
------------
- sinon
- chai-changes
- underscore
- backbone
Assertions
----------
``javascript`
model.should.trigger("change", { with: [model] }).when(function() {
model.set({ attribute: "value" });
});
this can also be chained further:
`javascript
model.should.trigger("change").and.trigger("change:attribute").when(function() {
model.set({ attribute: "value" });
});
model.should.trigger("change").and.not.trigger("reset").when(function() {
model.set({ attribute: "value" });
});
`
Tests if a route is delegated to the correct router and if the arguments
are extracted in the expected manner.
`javascript`
"page/3".should.route.to(myRouter, "openPage", { arguments: ["3"] });
"pages/3".should.not.route.to(myRouter, "openPage");
"page/3".should.route.to(myRouter, "openPage", { considering: [conflictingRouter] });
This assertion is ideal for testing view callbacks it will rebind view
events to test DOM events
`javascript`
view.should.call('startAuthentication').when(function() {
view.$('a.login').trigger('click');
});
Do an npm install chai-backbone to get up and running. Then:
`javascript
var chai = require("chai");
var chaiBackbone = require("chai-backbone");
chai.use(chaiBackbone);
`
You can of course put this code in a common test fixture file; for an example using [Mocha][mocha]
Chai Backbone supports being used as an [AMD][amd] module, registering itself anonymously (just like Chai). So,
assuming you have configured your loader to map the Chai and Chai
Backbone files to the respective module IDs
"chai" and "chai-backbone", you can use them as follows:
`javascript
define(function (require, exports, module) {
var chai = require("chai");
var chaiBackbone = require("chai-backbone");
chai.use(chaiBackbone);
});
`
If you include Chai Backbone directly with a
``
Copyright (c) 2012-2015 Matthijs Groen
MIT License (see the LICENSE file)
[chai]: http://chaijs.com/
[mocha]: http://visionmedia.github.com/mocha/
[amd]: https://github.com/amdjs/amdjs-api/wiki/AMD