私はKarma + JasmineでAngular指示をテストしようとしています。だから私の指示はtemplateUrl
karma-ng-html2js-preprocessorでテンプレートをキャッシュする必要があります。 マイkarma.conf.jsファイル:templateUrlを使用した角度指示のテスト
...
files: [
...
'static/views/**/*.html', // to match my directive template
...
],
preprocessors: {
'/static/views/**/*.html': ['ng-html2js] // to catch the filename as specified in templateUrl
},
ngHtml2JsPreprocessor: {
moduleName: 'templates'
}
...
そして、私のジャスミン仕様:
describe('Directive unittesting', function() {
beforeEach(module('myModule'));
beforeEach(module('templates'));
var $compile, $scope;
beforeEach(inject(function(_$compile_, _$rootScope_) {
$compile = _$compile_;
$scope = _$rootScope_.$new();
}));
it('Replaces the element with the appropriate content', function() {
var element = $compile("<my-directive></my-directive>")($scope);
expect(element.html()).toContain("text to contain");
});
});
しかし、いくつかの理由のために、それは私のtemplates
モジュールを注入することができないようです:TypeError: undefined is not a function (evaluating '$compile(...
を。それらのことを正しく一緒にするにはどうすればいいですか?だから、問題は設定
ngHtml2JsPreprocessor: {
prependPrefix: '/',
moduleName: 'templates'
},
とプリプロセッサを変更することで解決しました