我想单元测试一个模拟占位符的指令,其中输入值仅在keyup / down事件时清除。
您需要以编程方式创建事件并触发它。这样做包括jQuery的单元测试是非常有用的。例如,你可以这样写一个简单的实用程序:
原文链接:https://www.f2er.com/angularjs/145653.htmlvar triggerKeyDown = function (element,keyCode) { var e = $.Event("keydown"); e.which = keyCode; element.trigger(e); };
然后在你的单元测试中使用它:
triggerKeyDown(element,13);
你可以在这里的http://angular-ui.github.io/bootstrap/项目中看到这个技术的行动:https://github.com/angular-ui/bootstrap/blob/master/src/typeahead/test/typeahead.spec.js
免责声明:让我们在这里精确:我不提倡使用jQuery与AngularJS!我只是说,它是一个有用的DOM操作实用程序,用于编写测试与DOM交互。
要使上面的代码工作没有jQuery,更改:
$.Event('keydown')
至:
angular.element.Event('keydown')