gpt4 book ai didi

javascript - 将 angular-route 1.5.0 更新为 1.5.1 时出现 Karma 错误

转载 作者:数据小太阳 更新时间:2023-10-29 03:55:35 27 4
gpt4 key购买 nike

当我将 angular-route 1.5.0 更新到 1.5.1 时,出现错误:

Angular 单元测试:错误:意外请求:GET

当我启动 karma 时,我收到一条错误消息:

1) Call getAll method [App Category] Error: Unexpected request: GET http://myapp.com/app-category?is_active=true No more request expected in /node_modules/angular-mocks/angular-mocks.js

app_category.model.test.js

describe('[App Category]', function () {

beforeEach(module('myApp'));

var $httpBackend, HttpService, AppCategory;

beforeEach(inject(function (_$httpBackend_, _HttpService_, _AppCategory_) {
$httpBackend = _$httpBackend_;
HttpService = _HttpService_;

AppCategory = _AppCategory_;
}));

it('Call getAll method', function () {
var app_category = new AppCategory();

HttpService.mock('GET', 'app-category?is_active=true', 200, [{ code: 'TRAVEL', name: 'Travel' }]);

app_category.getAll({ is_active: true }).then(function (request) {
expect(request.data[0].code).toBe('TRAVEL');
expect(request.data[0].name).toBe('Travel');
});

$httpBackend.flush();
});

});

Angular 模拟HTTP.js

(function (angular) {
'use strict';

angular.module('ngMockHTTP', []).service('HttpService', function ($httpBackend, config) {
this.endpoint = config.api.endpoint;

this.mock = function (method, url, status, response) {
switch (method) {
case 'GET':
$httpBackend
.expectGET(this.endpoint + url)
.respond(status, response);
break;
case 'POST':
$httpBackend
.expectPOST(this.endpoint + url)
.respond(status, response);
break;
case 'PUT':
$httpBackend
.expectPUT(this.endpoint + url)
.respond(status, response);
break;
case 'PATCH':
$httpBackend
.expectPATCH(this.endpoint + url)
.respond(status, response);
break;
case 'DELETE':
$httpBackend
.expectDELETE(this.endpoint + url)
.respond(status, response);
break;
}
};
});
})(angular);

我试着替换 :

case 'GET':
$httpBackend
.expectGET(this.endpoint + url)
.respond(status, response);
break;

通过这个:

case 'GET':
$httpBackend
.whenGET(this.endpoint + url, {
}).respond(function(){ return [200, response]});
break;

但是我有同样的错误

我使用 jasmine 2.4.1,angularjs 1.5.3,karma 0.13.0

最佳答案

angular 团队已经知道这个错误。此错误的解决方法是为 $templateCache 定义一个虚拟模板。
更多信息:link

关于javascript - 将 angular-route 1.5.0 更新为 1.5.1 时出现 Karma 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36405729/

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