Testing Backbone.js components with stubs and mocks
With the addition of stubs and mocks to our test infrastructure, we are ready to tackle the remaining components of our Backbone.js application that we will cover in this book: the App.Views.NotesItem
view and the App.Routers.Router
router. For those following along in the code examples, we will integrate the specs for these application components into the test driver page chapters/05/test/test.html
.
Ensuring stubs and mocks are actually bound
One preliminary Sinon.JS issue that can trip up developers is making sure that spies, stubs, and mocks are actually bound to the expected methods of a Backbone.js application object during a test.
Let's start with a simple Backbone.js view named MyView
. The view has a custom method named foo()
that is bound to two event listeners, wrapped
and unwrapped
. The listeners are functionally equivalent, except that wrapped
wraps the call in a function (function () { this.foo(); }
) while unwrapped
binds the real...