Я хотел бы проверить свой ресурс с следующий URL:Тестирование AngularJS ресурс с жасмином
$resource(API_URL+'items/:id', {});
Где API_URL равно/приложение/API/
describe('item',function(){
it('should return same item id',function(){
$httpBackend.expectGET(API_URL+'items/1').respond({id:1});
var result = ItemService.item.get({id:1});
$httpBackend.flush();
expect(result.id).toEqual(1);
});
});
Но проблема в том, что этот тест не для какая-то странная причина:
Error: Unexpected request: GET modules/home/partials/home.html
No more request expected
at $httpBackend
И когда я добавить косую черту $ httpBackend URL, как это:
$httpBackend.expectGET(API_URL+'/items/1').respond({id:1});
Он бросает следующие expection:
Error: Unexpected request: GET /app/api/items/1
Expected GET /app/api//items/1
at $httpBackend
Примечание двойной слеш в ожидаемом ГЭТ.
Как это исправить?
Update: Код от ItemService:
var itemService = angular.module("ItemServiceModule", []);
itemService.factory("ItemService", [ "$resource", "API_URL", function($resource,API_URL) {
var itemService = {
item: $resource(API_URL+'items/:id', {})
};
return itemService;
}]);
Update2: Если изменить httpBackend URL как это (просто добавить локальный и не добавлять слэш перед элементов):
$httpBackend.expectGET('http://localhost:8080'+API_URL+'items/1').respond({id:1});
Тогда ошибка это:
Error: Unexpected request: GET /app/api/items/1
Expected GET http://localhost:8080/app/api/items/1
at $httpBackend
Обновление3: Если я, например, жесткий код, который API_URL так:
var url = 'app/api/items/1';
$httpBackend.expectGET(url).respond({id:1});
Ошибка:
Error: Unexpected request: GET /app/api/items/1
Expected GET app/api/items/1
at $httpBackend
Но когда я добавить слеш в начале ВГД, то он запрашивает дома частичные модули/дома/partials/home.html как с API_URL.
Error: Unexpected request: GET modules/home/partials/home.html
No more request expected
at $httpBackend
Показать код для 'ItemService' – Chandermani
@Chandermani Хорошо , Я добавил ... – Twisty
Как передается переменная 'API_URL' – Chandermani