2015-02-03 3 views
0

Я пишу тесты для директивы. Я хочу пройти в шаблонURL, а затем проверить различные функциональные возможности, используя встроенную библиотеку JQlite.Директивы тестирования AngularJS не могут скомпилировать шаблон с URL-адреса

По какой-то причине мой шаблон, кажется, не компилируется, хотя Жасмин не дает мне никаких ошибок.

мое отношение структура приложение:

/app 
../partials/ 
../tests/ 

У меня есть моя установка karma.conf так:

files: [ 
    ... 
    'tests/*.js', 
    'partials/*.html'  
], 

preprocessors: { 
    'partials/*.html':'ng-html2js' 
}, 

plugins: [ 
    'karma-chrome-launcher', 
    'karma-jasmine', 
    'karma-ng-html2js-preprocessor', 
    'karma 
] 

Мой тестовый код выглядит следующим образом:

describe('mapInputs.customForm', function() { 
    var elm, scope; 

    beforeEach(module('myApp')); 
    beforeEach(module('partials/test/tmpl.html')); 

    beforeEach(inject(function (_$rootScope_, _$compile_) { 
    $rootScope = _$rootScope_; 
    $compile = _$compile_; 

    elm = angular.element('<div><ng-map-inputs map-inputs=""></ng-map-inputs></div>'); 
    console.log('elm', elm); 
    elm = $compile(elm)($rootScope); 
    $rootScope.$digest(); 
    console.log('elm', elm); 
    })); 

    it('should reveal custom form', function() { 
    // elm.find('div') returns an empty object 
    }); 
}); 

И выход :

LOG: 'elm', Object{length: 1, 0: <div><ng-map-inputs map-inputs=""></ng-map-inputs></div>} 

LOG: 'elm', Object{length: 1, 0: <div class="ng-scope"><ng-map-inputs map-inputs=""></ng-map-inputs></div>} 

Как я уже сказал, я не получаю никаких ошибок, но вывод журналов консоли - это не то, что я ожидаю. Кажется, что шаблон не компилируется? Но, конечно же, Жасмин пожалуется, если шаблон не будет найден?

Любая помощь будет высоко оценена.

+0

Слишком сложно для отладки зрения ... заведите Codepen –

+0

Просто хотел, чтобы увидеть, есть ли что-нибудь Очевидно, я отсутствовал. –

+0

Ничего не хватает, но мозг человека (или женщины) не может скомпилировать это в бит-код и посмотреть, что случилось, браузер должен это сделать, поэтому сделайте скрипку. –

ответ

0

Вопрос для меня было то, что я не нагружал фактическую директиву в karma.conf.js:

files: [ 
    ... 
    'path/to/directive/map-inputs.directive.js', // <-- wasn't being loaded before 
    'tests/*.js', 
    'partials/*.html'  
], 
Смежные вопросы