2016-05-19 2 views
0

Может ли кто-нибудь рассказать мне, что я делаю неправильно здесь, когда я пытаюсь запустить этот тестовый тест, я получаю ошибку Ошибка я получаю Ошибка: Неожиданный запрос: GET "local.epikko.io:3000/home? extended = true " Ожидается больше запросов
Как я могу обрабатывать несколько http и заводских вызовов в одном контроллере через жасмин? вот мой тестовый кодВ jasmine больше не требуется запрос

describe('homeController Controller', function(){ 
beforeEach(module('myapp')); 
var ctrl,$http,$httpBackend,scope,trendingProducts,newArrivalsProducts,store,categories,HomeProduct,Product; 
beforeEach(inject(function(Product,HomeProduct,$injector,_$q_,$controller, $rootScope, $httpBackend,$http) { 
    var deferred = _$q_.defer(); 
Product = Product; 
HomeProduct = HomeProduct; 
$httpBackend = $injector.get('$httpBackend'); 
$http = $http; 
trendingProducts = {}; 
newArrivalsProducts = {}; 
store = {}; 
categories = {}; 
trendingProducts = []; 
rootScope = $rootScope; 
scope = $rootScope.$new(); 
$httpBackend.when('GET','http://local.epikko.io:3000/home',{ 
'headers': { 
    'Content-Type': 'application/json' 
}, 
    'params': { extended: 'true' }, 
    'withCredentials':true 
}).respond({'success':true}); 
deferred.resolve('resolveData'); 
spyOn(Product,'fetchProductList').and.returnValue(deferred.promise); 
spyOn(HomeProduct,'fetchTrendingProduct').and.returnValue(deferred.promise); 
spyOn(HomeProduct,'fetchNewArrivals').and.returnValue(deferred.promise); 
spyOn(HomeProduct,'fetchStore').and.returnValue(deferred.promise); 
spyOn(HomeProduct,'fetchCategories').and.returnValue(deferred.promise); 
ctrl = $controller('homeController', { 
    $scope: scope, 
    trendingProducts:trendingProducts, 
    newArrivalsProducts:newArrivalsProducts, 
    store:store, 
    categories:categories 
}); 
})); 

it('Check Controller Promise function"s of Home Controller', function() { 
    rootScope.$apply(); 
}); 
}); 

ответ

1

Вы издевались ваши $ httpBackend с 'http://local.epikko.io:3000/home', но вы назвали 'local.epikko.io:3000/home?extended=true' - без 'http://'. Улучшите регулярное выражение. Попробуйте что-нибудь вроде:

$httpBackend.when('GET',/local.epikko.io:3000\/home/,...) 
    .respond({'success':true});