我是Jasmine2 JS框架的新手。我正在使用Jasmine.js框架为我在Backbone.js框架中开发的应用程序创建测试套件。
当我为Backbone.js创建测试用例时 - >查看home.js文件,我的一个home.js视图函数有
event.stopPropagation();
和另一个功能
event.preventDefault();
如果我的Backbone.js - > views函数有 event.stopPropagation();和event.preventDefault(); ,我的测试套件抛出错误如下:
TypeError:无法读取属性' stopPropagation'未定义的
请帮助我,如何为具有event.stopPropagation(); and event.preventDefault();
或
如何跳过这些有event.stopPropagation();和event.preventDefault();当我从Jasmine.js框架调用函数时?
请告诉我,如果您需要我的过渡进一步澄清。
提前致谢。
答案 0 :(得分:3)
您可以尝试使用此代码,我希望这可以帮助您测试事件:
var event = {
type: 'click',
stopPropagation: function () {},
preventDefault: function () {}
};
var stopPropagationSpy = spyOn(event, 'stopPropagation');
var preventDefaultSpy = spyOn(event, 'preventDefault');
{OBJ}.{FUNCTION_TO_CALL}(event);
$("{YOUR_ELEMENT_TO_TRIGGER}").trigger(event);
expect(stopPropagationSpy).toHaveBeenCalledWith();
expect(preventDefaultSpy).toHaveBeenCalledWith();
答案 1 :(得分:0)
此错误表示事件未定义,而不是stopPropogation()。
submitClicked(e: any) {
e.preventDefault(); <-- e would be undefined.
}