フィード (RSS) アプリケーションを開発するときに、AngularJS 単体テストで遊んでいます。フィードは、リモートの rss データを取得して解析し、解析されたアイテムを保存できます。RSS フェッチをテストするために、$httpBackend モックを使用します。
beforeEach(inject(function (_$httpBackend_, _feedMock_, _mockConfig_) {
_$httpBackend_.when('GET', _mockConfig_.FEED_URL).respond(_feedMock_);
}));
そしてその下
$httpBackend.expectGET(mockConfig.FEED_URL);
feed.fetch();
$httpBackend.flush();
それは正常に動作します。
しかし、更新された RSS データを取得して新しい項目を追加することで、Feed がその状態を実現できるようにする必要があります。したがって、フィードは同じリクエストを行いますが、新しく更新されたデータを取得します。次のような方法でサーバー定義を再作成しようとしています:
$httpBackend.when('GET', _mockConfig_.FEED_URL).respond(feedMockUpdated);
次に、expect と flush で同じ操作を行いますが、$httpBackend の応答は、新しい (feedMockUpdated) ではなく、古いデータ (feedMock) で行います。$httpBackend を同じリクエストで異なるデータで応答させるにはどうすればよいですか?