1
我正在寫作和JS單元測試。這是我仍然在努力並且正在學習如何正確地做的事情。我有一個函數調用api,然後將承諾中的數據分配給一個變量。下面是代碼:單元測試,以確保一個函數調用通過一個API和分配數據到一個變量
API
this.get_history = function(item_id) {
var deferred = $q.defer();
$http.get('/api/items/' + item_id + '/bids', {
ignoreLoadingBar: true
})
.success(function(data, status, headers, config) {
deferred.resolve(data);
})
.error(function(data, status, headers, config) {
deferred.reject(data);
});
return deferred.promise;
};
函數來調用API
item.refresh_bid_history = function() {
var self = this;
my_api.get_history(self.id).then(function(data){self.bid_history = data});
};
我想,要麼確保該API被調用編寫測試,和/或者數據部分實際上被分配到item.bid_history
屬性。以下是我現在的測試。
測試
it ('refresh_bid_history calls get_history API', inject(function() {
var item_json = mock_item_details_json();
var item = ItemService.get_item(fb_ref, item_json);
item.bid_history = [];
item.refresh_bid_history();
expect(item.bid_history.length).toEqual(1);
expect(item.bid_history[0].placed_at._d).toBeDefined();
}));
如果您需要更多的信息,我可以嘗試,並提供它。
謝謝!在研究瞭如何使用''httpBackend'''後,我纔開始工作。我很欣賞這個建議。 –