$ compile:升级到angular 1.61后没有抛出ctreq错误

时间:2017-01-29 07:25:12

标签: angularjs testing angularjs-directive karma-jasmine

我刚开始从角度1.48开始迁移 - > 1.61 我离开了一个拒绝通过的单元测试。 我们想验证我们编写的指令将来不会改变,以便它始终保留在require属性中。

这是指令定义:

angular.module('ourApp')
    .directive('ourdirective', ['$timeout', function($timeout) {
    return {
      restrict: 'AE',
       require: 'ngModel',
       scope: {
         options:'=?',
         max:'=',
         ngModel : "="
    },
    templateUrl: 'ourhtmltemplate.html'
    link: function(scope, elt, attrs, ctrl) { // some code here }

这是我们为那个编写的单元测试。您可以假设没有任何类型的编译错误,并且其他测试飞得很高。

it('should throw if no ng model present', function() {
  expect(function() {
    buildElement("<ourdirective ></ourdirective>");
  }).toThrowError();
};

function buildElement(html) {
  element = angular.element(html);
  $compile(element)($rootScope);
  $rootScope.$digest();
  $rootScope.select = {}
  isolatedScope = element.isolateScope();
  $rootScope.$apply(function() {});
}

我们正在使用以下套餐:

&#34; angular&#34;:&#34; 1.6.1&#34;, &#34;棱角分明&#34;:&#34; 1.6.1&#34;, &#34; jasmine-expect&#34;:&#34; 1.22&#34;, &#34;业力&#34;:&#34; ^ 0.12.31&#34;, &#34; karma-jasmine&#34;:&#34; ^ 0.3.5&#34;, &#34; karma-jasmine-matchers&#34;:&#34; ^ 0.1.3&#34;, &#34; karma-phantomjs-launcher&#34;:&#34; ^ 0.1.4&#34;,

任何帮助都会得到最多的帮助。

1 个答案:

答案 0 :(得分:0)

事实证明,这是角1.6中的已知问题 https://github.com/angular/angular.js/issues/15629