그래서 내 공장에서는 HTTP 호출을 요청하고이를 약속 배열에 추가하는 루프가 있습니다. 그런 다음 결과를 $q.all
으로 작성하여 모델을 작성하십시오. 그러나 테스트 할 때 HTTP를 사용하여 모든 호출을 수행 할 수는 없지만 마지막 호출 만 수행하므로 모든 호출을 수행하고 모델을 작성해야합니다. 아래 매우 (I 7 날짜를 사용하지만, 짧은 일을 계속하고 싶어) 코드를 줄일 나는 이것을 테스트하기 위해 올 때단위 테스트 다중 HTTP 요청
function getLatestData(){
var dateArray= ['2017-09-21','2017-09-22']
for (i = 0; i < 2; i++) {
var url = 'data-server/date/[i]'
promises.push(getData(url)); // getData is a simple $http function call.
}
return $q.all(promises).then(function(response){
buildModel(reponse);
});
}
그래서
공장 코드, 내가 좋아하는 뭔가를 가지고있다 (루프를 시도했지만 실패했습니다.)
httpBackend.expectGET('data-server/date/2017-09-21').respond(mockData[0]); httpBackend.expectGET('data-server/date/2017-09-22').respond(mockData[1]); rootScope.$apply(); modelFactory.getLatestData().then(function(response){ expect(response).toEqual(mockModelData); })
은 그래서 GET URL을 CONSOLE.LOG 나는 그것을 항상이기 때문에 그들이이 오류 Error: Unexpected request: GET 'data-server/date/2017-09-22'
Expected GET 'data-server/date/2017-09-21'
결과 업데이트로하지 않는 것, 모든 URL 요청이 동일한 참조 마지막으로 httpBackend.expectGET
이 찍혔습니다.
무엇이 누락 되었습니까?