Angularjs jasmine错误$httpBackend没有域的意外请求
我对$httpBackend的jasmine测试将不起作用,除非我添加域名,即 因为这个测试在几个不同的环境中使用,所以我不能使用 如果没有域,我会出现以下错误: 未捕获错误:意外请求:获取 不需要更多的请求Angularjs jasmine错误$httpBackend没有域的意外请求,angularjs,jasmine,httpbackend,Angularjs,Jasmine,Httpbackend,我对$httpBackend的jasmine测试将不起作用,除非我添加域名,即 因为这个测试在几个不同的环境中使用,所以我不能使用 如果没有域,我会出现以下错误: 未捕获错误:意外请求:获取 不需要更多的请求 describe('test my service', function () { 'use strict'; var $httpBackend, myService; beforeEach(inject(fu
describe('test my service', function () {
'use strict';
var $httpBackend,
myService;
beforeEach(inject(function (_$injector_, _$httpBackend_) {
var $injector = _$injector_;
$httpBackend = _$httpBackend_;
myService = $injector.get('myService');
// this works
//$httpBackend.whenGET('http://localhost:9808/api/mymethod').respond(200, mockData);
// this throws error
$httpBackend.whenGET('/api/mymethod').respond(200, mockData);
}));
afterEach(function () {
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
});
it('check service exists and has methods', function () {
expect(myService).toBeDefined();
expect(myService.somemethod).toBeDefined();
$httpBackend.flush();
});
});
我甚至试着将这些行添加到beforeach中
//这也会引发错误
$httpBackend.when('GET','/api/mymethod')。respond(200,mockData)
//即使添加expect,也会在beforeach中抛出错误
$httpBackend.expectGET('/api/mymethod')
关于如何在不使用域名的情况下实现这一点,有什么想法或建议吗
以下是实际发出请求的服务代码:
(function(app) {
'use strict';
function MyService(apiService) {
var returnDataObject = [];
apiService.getAll().then(function(result) {
returnDataObject = result.data;
});
this.myMethod = function() {
if(returnDataObject) {
return returnDataObject;
}
else {
return null;
}
};
}
app.service('MyService', MyService);
MyService.$inject = ['APIService'];
})(angular.module('app.mymodule'));
我想您可以使用正则表达式来匹配URL 你可以做:
var method = 'GET';
var url = '/mymethod';
$httpBackend.when(method, new RegExp('\\' + url)).respond(200, mockData);
我想您可以使用正则表达式来匹配URL 你可以做:
var method = 'GET';
var url = '/mymethod';
$httpBackend.when(method, new RegExp('\\' + url)).respond(200, mockData);
好,看了这个帖子之后, 我可以通过将下面的beforeach添加到我的规范文件来解决我的问题。我正在使用angular v1.5.4和angular ui路由器v0.2.18
beforeEach(module(function($urlRouterProvider) {
$urlRouterProvider.deferIntercept();
}));
好,看了这个帖子之后, 我可以通过将下面的beforeach添加到我的规范文件来解决我的问题。我正在使用angular v1.5.4和angular ui路由器v0.2.18
beforeEach(module(function($urlRouterProvider) {
$urlRouterProvider.deferIntercept();
}));
实际发出请求的代码是什么?实际发出请求的代码是什么?