gpt4 book ai didi

AngularJS Karma 测试 : Unexpected request: GET. template.html

转载 作者:行者123 更新时间:2023-12-01 03:30:47 24 4
gpt4 key购买 nike

我正在尝试为我的 AngularJS 应用程序设置 karma 测试,但不知何故我不断失败。
我已按照所有步骤操作 here但我感觉 ng-html2js 预处理器工作不正常。我总是收到以下消息:

Error: Unexpected request: GET js/templates/my-template.template.html



这是我的代码结构

code structure

这里是我的测试结构

enter image description here

我试图测试的指令是:
angular
.module('myapp')
.directive('myDirective', ['myService', function (myService) {
return {
restrict: 'E',
templateUrl: 'js/templates/my-template.template.html',
scope: {},
link: function (scope) {
}
}
}]);

我的 karma conf 如下所示:
module.exports = function (config) {
config.set({

basePath: '../../',

frameworks: ['jasmine'],


files: [
//some omitted like angular and so on...
'main/resources/static/**/*.js',
'**/*.html',
'test/js/**/*Spec.js'
],

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

ngHtml2JsPreprocessor: {
moduleName: 'templates'
}
... (more default stuff omitted)
}

和 mySpec.js 像这样:
describe('directive', function () {
'use strict';

beforeEach(module('myapp'));
beforeEach(module('templates'));

var elm,
scope;

beforeEach(inject(function ($rootScope, $compile) {
elm = angular.element(
'<my-directive>' +
'</my-directive>');

scope = $rootScope.$new();

$compile(elm)(scope);
scope.$digest();
}));

describe('Does something', function () {
console.log('test');
expect(true).toBe(true);
});
});

最佳答案

在你的 beforeEach 函数中为你的指令的 html 模板添加一个模拟模板。使用 $templateCache :

describe('directive', function () {
'use strict';

beforeEach(module('myapp'));
beforeEach(module('templates'));

var elm,
scope;

beforeEach(inject(function ($rootScope, $compile, $templateCache) {


$templateCache.put('js/templates/my-template.template.html','HTML_OF_YOUR_DIRECTIVE');

elm = angular.element(
'<my-directive>' +
'</my-directive>');

scope = $rootScope.$new();

$compile(elm)(scope);
scope.$digest();
}));

describe('Does something', function () {
console.log('test');
expect(true).toBe(true);
});
});

关于AngularJS Karma 测试 : Unexpected request: GET. template.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37888004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com