我有一个非常简单的指令,其目的只是取消dragstart事件:
link: function(scope,element) { element.on('dragstart',function(e) { e.preventDefault(); }) }
如何在茉莉花测试中测试?我有以下测试,试图监视一个Event对象,并将其传递给处理程序:
var mockEvent; beforeEach(function() { mockEvent = new Event('dragstart'); spyOn(mockEvent,'preventDefault'); }); it('should call preventDefault',function () { element.triggerHandler('dragstart',mockEvent); expect(mockEvent.preventDefault).toHaveBeenCalled(); });
但测试失败.你可以see this at this Plunker..我如何测试这个(/ refactor的指令,使其可测试)?
解决方法
您可以包含jquery并创建一个jquery事件对象.这个对象很容易被传递:
beforeEach(function() { mockEvent = $.Event('dragstart'); spyOn(mockEvent,function () { element.triggerHandler(mockEvent); expect(mockEvent.preventDefault).toHaveBeenCalled(); });
我在你的plunkr中使用了这个jquery版本://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js
原文地址:https://www.jb51.cc/html/225144.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。