Comment puis-je vérifier si mon élément a été concentrée dans un test unitaire

J'ai la directive suivante à l'autofocus d'un champ:

.directive('ngAutofocus', function ($timeout) {
    return {
        restrict: 'A',
        link: function (scope, elm) {
                $timeout(function () {
                elm[0].focus();
            });
        }
    };
}

Comment aurais-je de l'unité de tester cela? J'ai essayé plusieurs choses comme le sélecteur suivant, mais qu'ils reviennent tous des erreurs ou faux:

console.log($(elm[0]).is(':focus'));

Mon unité de test est mis en place comme ceci:

elm = angular.element('<input type="text"  name="textfield1" ng-autofocus>');
$scope.$digest();
$compile(elm)($scope);
  • En plus des remarques que vous faites dans votre réponse, le lecteur doit prendre note que votre directive définition devrait lire: .directive('ngAutofocus', '$timeout', function ($timeout) { -- sinon $timeout n'est pas transcluded par Angulaire.
  • Êtes-vous sûr? Tu veux sans doute dire avec un [ ajouté trop, et pas parce que transclusion, mais en raison de minification provoquant l'injection de pause sans certaines minimizers. Voir github.com/johnpapa/...
  • oui pour le [ - je modifier à l'extérieur de la zone de commentaire.
  • alors encore, l'injection d'aider n'est nécessaire que dans certains cas, et n'est pas requise pour la question
InformationsquelleAutor Maarten | 2014-03-11