在開發Feed(RSS)應用程序時,我正在玩AngularJS單元測試。 Feed可以獲取遠程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();
它工作正常。
但我需要讓Feed可以通過獲取更新的rss數據並追加新項目來實現它的狀態。所以,Feed會提出相同的請求,但會獲得新的更新數據。我想通過這樣的事情來重新創建服務器定義:
$httpBackend.when('GET', _mockConfig_.FEED_URL).respond(feedMockUpdated);
,然後進行同樣的操作與預期和沖洗,但$ httpBackend舊數據(feedMock),沒有新的(feedMockUpdated)響應。我怎樣才能使$ httpBackend響應同一請求上的不同數據?
如果您使用的打字稿,你將不得不返回類似[ 200, feedMock, {}]。我不明白爲什麼返回值被設計成一個數組而不是一個對象 –
rob
2013-06-09 20:03:35