2016-08-19 7 views
0

私は角度js指令を1つの方法で書いていますが、そのために単体テストを書く方法はわかりません。angular js指令ジャスミンのユニットテスト

var app = angular.module("myApp",[]); 

app.directive('minMax', function() { 

    return { 
     require: 'ngModel', 
     link: function(scope, element, attr, mCtrl) { 
      function myValidation(value) { 
       if (value.toString().length > 2 & value.toString().length < 6) { 
        mCtrl.$setValidity('charE', true); 
       } else { 
        mCtrl.$setValidity('charE', false); 
       } 
       return value; 
      } 
      mCtrl.$parsers.push(myValidation); 
     } 
    }; 
}); 

この方法をテストするにはどうすればよいですか?

+0

<= "あるmyForm" フォーム名>

ピンコード:= "番号" NAME = "PINコード" NGモデル= "PINコード" が必要分 の

Raj

答えて

0

ここをクリックしてください:https://github.com/daniellmb/angular-test-patterns それはテストパターンの素晴らしいコレクションを含んでいます。ディレクティブ試験の

例:

describe('Directive: myDir', function() { 
    var element, scope, compile, defaultData, 
     validTemplate = '<my-dir ng-model="data"></my-dir>'; 

    function createDirective(data, template) { 
    var elm; 

    // Setup scope state 
    scope.data = data || defaultData; 

    // Create directive 
    elm = compile(template || validTemplate)(scope); 

    // Trigger watchers 
    //scope.$apply(); 

    // Return 
    return elm; 
    } 

    beforeEach(function() { 

    // Load the directive's module 
    module('myApp'); 

    // Reset data each time 
    defaultData = 42; 

    // Provide any mocks needed 
    module(function ($provide) { 
     //$provide.value('Name', new MockName()); 
    }); 

    // Inject in angular constructs otherwise, 
    // you would need to inject these into each test 
    inject(function ($rootScope, $compile) { 
     scope = $rootScope.$new(); 
     compile = $compile; 
    }); 
    }); 

    describe('when created', function() { 
    // Add specs 
    }); 

    describe('when the model changes', function() { 
    // Add specs 
    }); 

    describe('when destroyed', function() { 
    // Add specs 
    }); 
}); 
+0

にNG-ショー= "myForm.pincode $汚い&& myForm.pincode $無効。。">最低3:-max> <スパンのスタイル= "赤色"コード、試してください – Raj

+0

いいえ、あなたはそれを試してください:) – Ioan

関連する問題