我有以下指令来自动对焦一个字段:
.directive('ngAutofocus',function ($timeout) { return { restrict: 'A',link: function (scope,elm) { $timeout(function () { elm[0].focus(); }); } }; }
我将如何测试这个?我尝试了几个像下面的选择器,但都返回错误或者false:
console.log($(elm[0]).is(':focus'));
我的单元测试设置如下:
elm = angular.element('<input type="text" name="textfield1" ng-autofocus>'); $scope.$digest(); $compile(elm)($scope);
我想出来,实际上很明显;
it('should set the focus on timeout',function () { spyOn(elm[0],'focus'); $timeout.flush(); expect(elm[0].focus).toHaveBeenCalled(); })
我的问题是双重的:
>我没有调用超时冲洗功能,所以超时没有发生,和>我正在尝试查看元素的focus属性,而只需要查看focus()函数的调用更像是单元测试.焦点属性是真正属于e2e测试领域的东西.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。