0
我窺探我的休息服務的獲取方法:
spyOn(restService, 'get').and.callFake(function() { return deferred.promise; });
我想測試的方法是myService.getFormData ()返回鏈接承諾:
function getFormData() { var getPromise = this.restService.get(endPoint, params, true); var processedDataPromise = then(successHandle, failHandler); return processedDataPromise; }
回茉莉規範,我調用getFormData功能,並斷言:
var processedDataPromise = myService.getFormData(); processedDataPromise.then(function(data) { expect(data).not.toBeNull(); }); deferred.resolve(testFormData); $rootScope.$digest();
問題:
上述衍生承諾(processedDataPromise)確實得到解決。然而傳遞給它的'數據'是未定義的。美元消化週期與茉莉花沒有做好工作有什麼關係?
爲什麼不茉莉花任何數據傳遞到上述衍生的承諾?
進一步注意:processedDataPromise是一個全新的諾言,而不是返回的諾言。
這是processedData承諾正如我們可以看到的是由successHandle返回(未顯示清晰度)一旦其父getPromise得到解決。
在UI一切就像一個魅力。
您的意思是'getPromise.then(...)'?你確定'successHandle'總是返回預期的結果嗎?另外,你是否嘗試捕捉錯誤? – Bergi