Попытка исправить "неожиданный запрос GET" с помощью препроцессора ng-html2js не работает
Я хочу проверить угловую директиву с кармой и жасмином. Директива использует внешний шаблон с именем complete.html.
Я пытаюсь получить шаблон HTML со следующим кодом:
describe('directive', function () {
beforeEach(module('sampleapp'));
it('test',
function(){
inject(function ($rootScope, $compile) {
var $scope = $rootScope.$new();
var element = $compile(angular.element('<auto-complete></auto-complete>'))($scope);
$scope.$digest();
var textarea = element.find('textarea');
expect(textarea.length).toBe(1);
});
}
); });
Затем я получаю эту ошибку:
Error: Unexpected request: GET test/complete.html
Я искал решение для моей проблемы и нашел этот пост: модульное тестирование AngularJS директива с templateUrl
Я следовал инструкциям для решения кармы. Мой karma.conf.js выглядит следующим образом:
plugins : [
'karma-ng-html2js-preprocessor',
'karma-chrome-launcher',
'karma-jasmine'
],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'../complete.html': ['ng-html2js']
},
ngHtml2JsPreprocessor: {
moduleName: "complete.html"
},
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'../src/main/web/bower_components/jquery/dist/jquery.min.js' ,
'../src/main/web/bower_components/angular/angular.min.js' ,
'../src/main/web/bower_components/angular-route/angular-route.js',
'../src/main/web/bower_components/angular-mocks/angular-mocks.js',
'../complete.html',
'../src/main/web/scripts/application.js',
'../src/main/web/scripts/main.js',
'../src/main/web/scripts/service.js',
'../src/main/web/scripts/plz.json',
'tests.js'
],
(Я вырезал ненужные части, очевидно)
Затем, в соответствии с инструкциями, я пытаюсь загрузить сгенерированный модуль complete.html в мой тестовый файл:
describe('directive', function () {
beforeEach(module('sampleapp'));
beforeEach(module('complete.html'));
it('test',
function(){
inject(function ($rootScope, $compile) {
var $scope = $rootScope.$new();
var element = $compile(angular.element('<auto-complete></auto-complete>'))($scope);
$scope.$digest();
var textarea = element.find('textarea');
expect(textarea.length).toBe(1);
});
}
);});
Но я все еще получаю ошибку Error: Unexpected request: GET test/complete.html
Я чувствую, что не могу выполнить важную часть, но не могу найти полное решение для ситуации, в которой я нахожусь. Как правильно использовать сгенерированный модуль, чтобы я не получил ошибку?
Я был бы очень благодарен за некоторую помощь.