1

スピナーを表示する角度ディレクティブのジャスミン テストをいくつか書いています。私のディレクティブは次のようになります。

定義([
    "アプリ"、
    "スピン"
]、 関数(
    アプリ、
    スピナー
    ){
    '厳密を使用';

    アプリを返す
        .directive('処理', function() {

            戻る {
                制限:'E',
                トランスクルード: false,
                スコープ: {
                    表示: '=表示',
                    メッセージ: '=メッセージ'
                }、

                templateUrl: 'ディレクティブ/spin/processing.html',
                リンク:関数(スコープ、要素、属性){
                    var spinner = new Spinner({
                        lines: 17, // 描画する線の数
                        length: 40, // 各行の長さ
                        width: 10, // 線の太さ
                        radius: 60, // 内側の円の半径
                        corners: 1, // 角の丸み (0..1)
                        rotate: 0, // 回転オフセット
                        direction: 1, // 1: 時計回り、-1: 反時計回り
                        color: '#000', // #rgb または #rrggbb または色の配列
                        speed: 1, // 1 秒あたりのラウンド数
                        Trail: 60, // 残光の割合
                        shadow: true, // 影をレンダリングするかどうか
                        hwaccel: false, // ハードウェア アクセラレーションを使用するかどうか
                        className: 'spinner', // スピナーに割り当てる CSS クラス
                        zIndex: 2e9, // z-index (デフォルトは 2000000000)
                        top: 'auto', // 親を基準とした上の位置 (px 単位)
                        left: 'auto' // 親に対する左の位置 (px)
                    })。スピン();
                    var loadingContainer = element[0].querySelectorAll('.processing-spinner-container')[0];
                    loadingContainer.appendChild(スピナー.el);

                }
            };


        });
});

私のテンプレートは次のようになります。 <div><div ng-show="show" class="processing-spinner-container"></div></div>

今、ジャスミンの単体テストを行い、ng-show をテストしたいとき、私はこのようなものを持っています

           it('ngShow が true の場合にあるはず', inject(function($rootScope, $compile) {
                $scope = $rootScope.$new();
                $scope.show = true;
                var element = $compile('<処理>\</処理>')($scope);
                $scope.$apply();
                var spinnerContainer = element[0].querySelector('.processing-spinner-container');
                期待する(スピナーコンテナ.クラスリスト.含む('ng-非表示')).toBe(false);
            }));

ただし、このテストは失敗します。ng-hide$scope.show を true に設定しても、まだクラスがあります。

4

0 に答える 0