私は模擬してテストしたい指示があります。このディレクティブはngModelを二重バインディングに設定してtrueにしますng-modelを含む分離スコープの模擬テスト指示文
scope: {'ngModel': '=' }
transclude: true
私がテストしようとしている仕様はかなり簡単です。私はbeforeEachを作成し、ngModelをテストするためのディレクティブを作成し、私のユニットテストの内部
$el.find('input').prop('checked', $scope.ngModel);
=
element = angular.element("<div *directiveName* ><div><input type=\"checkbox\" ngModel=checked /> </div></div>");
$rootScope = $rootScope.$new();
$compile(element)($rootScope);
$rootScope.$digest(element);
scope = element.isolateScope();
をチェックする通常I)は、(等しいelement.scopeにスコープを設定します。私はこの右側にisolateScope()メソッドを呼び出すでしょうか?
Iはスペックしかし、scope.ngModelが未定義
expect(scope.ngModel).to.equal('checked');
ように単純であるべきである)ので、私は要素isolateScopeを(等しい範囲を設定だと信じていました。私は、ディレクティブを作成したり、テストを呼び出すときに何が欠けているのか分かりません。どんな方向にも感謝します。
ディレクティブは独立した範囲を持っていますか? try scope = element.isolateScope()|| element.scope;両方のシナリオをカバーします。 – sdfacre