मैं एक साधारण क्लिक हैंडलर लिख रहा हूँ और इस घटना में मैं समारोह मैं उम्मीद पर जासूसी करने के लिए कुछ मिल गया है (जैसे इतना)जासूसी का उपयोग करके क्लिक पर ईवेंट के साथ एक जासूसी कैसे लगाया जाता है?
Thing = function($){
var MyObject = function(opts){
this.opts = opts;
};
MyObject.prototype.createSomething = function(){
var that = this;
$('#some_dom_element').live('click', function(e) {
that.doStuff(e);
});
};
MyObject.prototype.doStuff = function(e) {
//do some javascript stuff ...
e.preventDefault();
};
return MyObject;
}(jQuery);
वर्तमान में मेरी चमेली कल्पना में
पारित कर दिया की जरूरत लागू हो जाता है (लेकिन यह है के बाद से मेरी अभिकथन args- बिना ई -not के साथ बुलाया विफल हो रहा है)
it ("live click handler added to the dom element", function(){
var doSpy = spyOn(sut, 'doStuff');
sut.createSomething();
$("#some_dom_element").trigger('click');
expect(doSpy).toHaveBeenCalledWith();
});
मैं इस "toHaveBeenCalledWith" के रूप में मैं उम्मीद काम करने के लिए कैसे सही कर सकते हैं?
अद्यतन
मैं स्वीकार किए जाते हैं जवाब है के रूप में, लेकिन मैं यह सिर्फ एक छोटे से परिवर्तन करने के लिए कर रहा था और नीचे मेरी 100% उदाहरण काम कर रहा है काम करने के लिए नहीं मिल सकता है
it ("should prevent default on click", function(){
var event = {
type: 'click',
preventDefault: function() {}
};
var preventDefaultSpy = spyOn(event, 'preventDefault');
sut.createSomething();
$("#some_dom_element").trigger(event);
expect(preventDefaultSpy).toHaveBeenCalledWith();
});