我有一个非常简单的指令:
angular.module('myModule',[]).directive('myInputAutofocus', function () {
return {
restrict: 'A',
link: function (scope, element) {
element.focus();
}
};
});
我该如何测试这个?我找不到模拟元素
的方法编辑:我做了一个解释我问题的小提琴:http://jsfiddle.net/8qBbR/
答案 0 :(得分:4)
您可以查看angular ui test their jQuery Passthru directive:
的方式 spyOn(jQuery.fn, 'foo');
compile('<div ui-jq="foo"></div>')(scope);
timeout.flush();
expect(jQuery.fn.foo).toHaveBeenCalled();
答案 1 :(得分:3)
您可以使用$ compile提供原始HTML来测试您的指令。
您的测试设置如下所示:
var scope = $rootScope.$new();
var element = $compile('<div my-input-auto-focus=""></div>')(scope);
您还可以使用angular.element('<div...');