私はFeed(RSS)アプリケーションを開発する際にAngularJSユニットテストをしています。フィードはリモートのrssデータを取得して解析し、解析されたアイテムを保存できます。
beforeEach(inject(function (_$httpBackend_, _feedMock_, _mockConfig_) {
_$httpBackend_.when('GET', _mockConfig_.FEED_URL).respond(_feedMock_);
}));
、その後
$httpBackend.expectGET(mockConfig.FEED_URL);
feed.fetch();
$httpBackend.flush();
の下に、それが正常に動作します:私はモック$ httpBackendを使用するフェッチRSSをテストします。
しかし、フィードは更新されたRSSデータを取得して新しいアイテムを追加することで状態を実現できるようにする必要があります。フィードは同じリクエストを行いますが、新しい更新データがあります。私はこのような何かによって、サーバー定義を再作成しようとしている:
$httpBackend.when('GET', _mockConfig_.FEED_URL).respond(feedMockUpdated);
、次に期待して同じ操作をするとフラッシュが、古いデータ(feedMock)ではなく、新しい(feedMockUpdated)と$ httpBackend応答。どのようにして$ httpBackendを同じリクエストの異なるデータで応答することができますか?
あなたは活字体を使用した場合は、[ 200、 feedMock、 {}]のようなものを返す必要があります。なぜ戻り値が配列ではなくオブジェクトであるように設計されているのか分かりません –
rob