$http GET リクエストを実行し、レスポンスをローカルにキャッシュする AngularJS サービスがあります。最終呼び出しからのデータのみがキャッシュされるように、同時に発生する複数の呼び出しを処理するように設計されています。
具体的には、次の場合です。
- リクエストA開始
- リクエストB開始
- リクエストB完了
- リクエスト A 完了
その結果、要求 B の応答は最後に開始されたため、キャッシュされます。
ただし、ジャスミンでこれを単体テストするのに問題があります。
2 つの $httpBackend.expectGET() 期待値を設定できますが、要求された順序でしかフラッシュできません。
基本的に、次のようなことができる必要があります。
$httpBackend.expectGET('/one').respond(200, data1);
$httpBackend.expectGET('/two').respond(200, data2);
myService.doSomething('/one');
myService.doSomething('/two');
$httpBackend.flush('/two');
$httpBackend.flush('/one');
expect(myService.data).toBe(data2);
誰かがこれを達成するためのきちんとした方法を提案できますか?