javascript - एक चमेली परीक्षण में स्टेबिंग e.preventDefault()




jasmine (2)

मैंने हाल ही में अपने जावास्क्रिप्ट फ़ंक्शंस में से एक e.preventDefault() जोड़ा है और यह मेरी चमेली कल्पना को तोड़ दिया मैंने spyOn(e, 'preventDefault').andReturn(true); करने की कोशिश की है spyOn(e, 'preventDefault').andReturn(true); लेकिन मुझे e की अपरिभाषित त्रुटि मिलती है मैं e.preventDefault()? कैसे कर सकता हूं e.preventDefault()?

showTopic: function(e) {
  e.preventDefault();
  midParent.prototype.showTopic.call(this, this.model, popup);
  this.topic.render();
}

it("calls the parent", function() {
    var parentSpy = spyOn(midParent.prototype, "showTopic");
    this.view.topic = {
      render: function() {}
    };
    this.view.showTopic();
    expect(parentSpy).toHaveBeenCalled();
});

https://code.i-harness.com


आपको एक वस्तु को रोकना होगा जो डिफॉल्ट को रोकता है जो आपके जासूस को रखता है:

var event = {preventDefault: jasmine.createSpy()}
this.view.showTopic(event);
expect(event.preventDefault).toHaveBeenCalled

नकली वस्तु बनाने के लिए एक और तरीका (जासूसों की ज़रूरत है) jasmine.createSpyObj() का उपयोग करना है। जासूसी के नाम वाले आरे को दूसरे पैरामीटर के रूप में पारित करना होगा।

var e = jasmine.createSpyObj('e', [ 'preventDefault' ]);
this.view.showTopic(e);
expect(e.preventDefault).toHaveBeenCalled();




jasmine