2016-08-19 5 views
0

Я написал угловую директиву js один метод, но я не знаю, как написать единичный тест для этого.угловой js Единичный тест для директивы jasmine

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">

PIN-код: <входной тип = "номер" имя = "пин-код" нг-модель = "пин-код" требуется минимальное -max> Минимум 3 до 6 Максимальная

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

я нужен метод испытания для выше код, попробуйте – Raj

+0

Нет, вы попробуете это :) – Ioan

Смежные вопросы