私の工場では、HTTP呼び出しをリクエストしてそれらを約束の配列に追加するループがあります。 その後、結果を$q.all
にしてモデルを作成します。 しかし、私はこれをテストするために来て、私はすべての呼び出しを行うためにHTTPを取得することはできません、それは最後のものを作るだけで、私はすべての呼び出しを行い、モデルを構築する必要があります。 は、以下の非常にユニットテスト複数の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);
});
}
は、私はこれをテストするために来たときにそう、私のようなものを持っている(私は7つの日付を使用しますが、短いものを維持したかった)、コードを削減されます(私はループを試みましたが、失敗しました)。
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と私は、すべてのURLリクエストが同じで、彼らはそれはいつもだから、このエラーに
Error: Unexpected request: GET 'data-server/date/2017-09-22'
Expected GET 'data-server/date/2017-09-21'
結果更新していないようです見ます最後にhttpBackend.expectGET
となりました。
私には何が欠けていますか?