I am trying to write a test to debug user input in a search query. The function is defined on the Backbone view:
SearchView = Backbone.View.extend({ events: { "input .search-input": "search" }, // init, render, etc. search: _.debounce(function() { this.collection.fetch(); }, 200) });
Backbone (v0.9.10) originally used Underscore (v1.4.4), and the test was defined as follows:
describe("SearchView", function() { var view, $viewContainer; beforeEach(function() { appendSetFixtures('<div class="jasmine-container"></div>'); $viewContainer = $(".jasmine-container"); view = new SearchView({ el: $viewContainer }); }); afterEach(function() { view.remove(); view.cleanup(); });
However, now I want to enable LoDash instead of Underscore. Using the latest Underscore compatibility version on my site (LoDash 2.4.1 / Underscore 1.5.6), all my tests pass, except for what is used with _.debounce!
I did some research and stumbled upon these relevant issues to create a LoDash Underscore assembly with runInContext, but I have no idea how to use it due to lack of examples. How to use _.runInContext() in my specifications for working with sinon.fakeTimer ?
source share