Чтобы проверить пользовательскую директиву angularjs проверки

Эта пользовательская директива валидации является примером, представленным на официальном угловом сайте.http://docs.angularjs.org/guide/forms Он проверяет ввод текста в числовом формате или нет.

var INTEGER_REGEXP = /^\-?\d*$/;
app.directive('integer', function() {
  return {
    require: 'ngModel',
    link: function(scope, elm, attrs, ctrl) {
      ctrl.$parsers.unshift(function(viewValue) {
        if (INTEGER_REGEXP.test(viewValue)) {
          // it is valid
          ctrl.$setValidity('integer', true);
          return viewValue;
        } else {
          // it is invalid, return undefined (no model update)
          ctrl.$setValidity('integer', false);
          return undefined;
        }
      });
    }
  };
});

Для модульного тестирования этого кода я написал это:

describe('directives', function() {
  beforeEach(module('exampleDirective'));

  describe('integer', function() {
    it('should validate an integer', function() {
      inject(function($compile, $rootScope) {
        var element = angular.element(
          '' +
            '' +
          ''
          );
        $compile(element)($rootScope);
        $rootScope.$digest();
        element.find('input').val(5);
        expect($rootScope.someNum).toEqual(5);
      });
    });
  });
});

Тогда я получаю эту ошибку:

Expected undefined to equal 5.
Error: Expected undefined to equal 5.

Я помещаю операторы печати повсюду, чтобы увидеть, что происходит, и похоже, что директива никогда не вызывается. Как правильно проверить такую простую директиву?

Ответы на вопрос(3)

Ваш ответ на вопрос