我在AngularJS中有一个包含模块$ document。
的指令$document.click(function (e) {});
我一直在尝试使用Karma为它编写单元测试并且它打破了测试,因为click()
中不存在函数$document
,也尝试使用{{1}的其他函数}喜欢$document
并遇到同样的问题:
keyup()
这是使其失败的测试代码:
TypeError: undefined is not a function
为什么会失败?
答案 0 :(得分:0)
这是the documentation关于$ document:
的说法浏览器的window.document对象的jQuery or jqLite包装器。
如果单击该链接,您将看到jqLite元素上定义的方法。其中没有click()而不是keyup()。这些方法确实存在于一个真正的jQuery对象上(参见http://api.jquery.com/category/events/),但是如果在您的JS文件列表中包含在angular.js之前的jQuery,AngularJS将只返回一个jQuery对象。