我有以下指令来自动聚焦字段:
.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(); })
我的问题有两个: