2015-04-10 2 views
0

Я пытаюсь заглушить возможности jQuery $(function() {}) в моих тестах, но не могу понять, как это сделать.Stubbing document.ready с Sinonjs

Я прочитал, что я мог бы просто написать sinon.stub($.fn, 'ready'); и что будет работать, но я получаю сообщение об ошибке:

ReferenceError: Can't find variable: $ 
    # seating_chart/seating_chart_controller_spec-07e88cd4275ced92864d500e93e46bf2.js: 

Если это делает никакой разницы - я не включая JQuery в моих тестовых файлов. Я хочу, чтобы иметь возможность запускать мои тесты без jQuery и просто заглушить/mock и функциональность, в которой я нуждаюсь.

ответ

1

Если вы не включаете jQuery, следует ожидать, что $$.fn) не определены.

sinon.stub() работает только на существующих функций, так что вам нужно, по крайней мере, создать леску для того, чтобы иметь возможность работать:

var $ = { fn : { ready : function() {} } }; 
... 
sinon.stub($.fn, 'ready')