角单元测试失败,错误:意外的请求:GET
问题描述:
我是新来的angularjs测试,并且一直在尝试运行这个测试,但是它一次又一次地失败并且出现相同的错误。我在这里查看问题并阅读文档,但没有得到这个错误的原因。角单元测试失败,错误:意外的请求:GET
帮助将不胜感激。提前致谢。
我service.js
'use strict';
var services = angular.module('services',['ngResource'])
services.factory('callAppsList',['$resource',function($resource){
return $resource('/api/apps/:appId', {}, {
query: {method:'GET', isArray:false},
get: {method:'GET', isArray:false},
});
}])
serviceSpec.js
//serviceSpec testing
describe("Testing service", function() {
beforeEach(module('services'));
var service, $httpBackend, response;
var url = 'http://0.0.0.0:5000/api/apps/a365cc3520c7a70a553e95ee354670264'
beforeEach(inject(function(_$httpBackend_, callAppsList) {
$httpBackend = _$httpBackend_;
res = { msg :'name'};
service = callAppsList;
}));
afterEach(function() {
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
});
//tests
it("callAppsList should be defined", function() {
expect(service).toBeDefined();
});
it('should send a ping and return the response',(function() {
res = service.get({appId: 'a365cc3520c7a70a553e95ee354670264'});
$httpBackend.whenGET(url).respond(res);
$httpBackend.expectGET(url)
$httpBackend.flush();
//expect(res.msg).toEqual('name');
}));
});
首测(当我如果它被定义通过测试),但下一个失败。
错误:
Error: Unexpected request: GET /api/apps/a365cc3520c7a70a553e95ee354670264
Expected GET http://0.0.0.0:5000/api/apps/a365cc3520c7a70a553e95ee354670264 in /home/anurag/anurag/projects/betablide/applunge/glide/static/test/lib/angular-mocks.js (line 1179)
烧瓶服务器在另一终端中运行。 请让我知道我在这里做错了什么,以及如何进一步处理。
答
正如在评论中提到的那样,改变了网址。我还更改了spec文件中的新行。希望这可以帮助其他人。
//serviceSpec testing
describe("Testing service", function() {
beforeEach(module('services'));
var service, $httpBackend, response;
var url = '/api/apps/a365cc3520c7a70a553e95ee354670264'
beforeEach(inject(function(_$httpBackend_, callAppsList) {
$httpBackend = _$httpBackend_;
service = callAppsList;
}));
afterEach(function() {
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
});
//tests
it("callAppsList should be defined", function() {
expect(service).toBeDefined();
});
it('should send a ping and return the response',(function() {
res = service.get({appId: 'a365cc3520c7a70a553e95ee354670264'});
$httpBackend.whenGET(url).respond({status: 200});
//explicitly flushes pending requests
$httpBackend.flush();
expect(res.status).toEqual(200);
}));
});
+1
嗨,有没有一种方法使$绝对路径使用$资源工作单元测试?我使用绝对路径在我的服务中调用$资源,因为是跨域调用。我试了几天,但结果是相同的“意外的请求:GET”。有没有人成功,我看到这是简单的$ http正常工作,但没有$资源?谢谢! – Webdesigner 2015-06-14 05:55:47
当您将网址更改为'var url ='/ api/apps/a365cc3520c7a70a553e95ee354670264''时会发生什么? – 2014-10-02 17:59:55
是的,那算出来了。通过添加整个地址我不知道我在想什么。 – anurag619 2014-10-06 06:58:09