我是 Jasmine2 JS 框架的新手。我正在使用 Jasmine.js 框架为我在 Backbone.js 框架中开发的应用程序创建测试套件。
当我为 Backbone.js 创建测试用例时 -> 查看 home.js 文件,我的 home.js View 函数之一有
event.stopPropagation();
另一个函数有
event.preventDefault();
如果我的 Backbone.js -> views 函数有 event.stopPropagation();和 event.preventDefault();,我的测试套件抛出如下错误:
类型错误:无法读取未定义的属性“stopPropagation”
如何为具有 event.stopPropagation(); 的 View 函数编写测试用例;和 event.preventDefault();
或
如何跳过这些有event.stopPropagation();和 event.preventDefault();当我从 Jasmine.js 框架调用函数时?
最佳答案
你可以试试这段代码,我希望这对你测试事件有用:
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();
关于javascript - Jasmine.js v2.0.0 - TypeError : Cannot read property 'stopPropagation' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23731344/