我想对模拟占位符的指令进行单元测试,其中输入值仅在 keyup/down 事件上清除。
您需要以编程方式创建一个事件并触发它。为此,使用 jQuery 进行单元测试是非常有用的。例如,您可以编写一个像这样的简单实用程序:
var triggerKeyDown = function (element, keyCode) {
var e = $.Event("keydown");
e.which = keyCode;
element.trigger(e);
};
然后在单元测试中使用它,如下所示:
triggerKeyDown(element, 13);
您可以在中看到该技术的实际应用http://angular-ui.github.io/bootstrap/ http://angular-ui.github.io/bootstrap/项目在这里:https://github.com/angular-ui/bootstrap/blob/master/src/typeahead/test/typeahead.spec.js https://github.com/angular-ui/bootstrap/blob/master/src/typeahead/test/typeahead.spec.js
免责声明:让我们明确一点:我并不提倡将 jQuery 与 AngularJS 结合使用!我只是说它是一个有用的 DOM 操作实用程序,用于编写与 DOM 交互的测试。
为了使上面的代码工作withoutjQuery,更改:
$.Event('keydown')
to:
angular.element.Event('keydown')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)