2017-04-18 28 views
4

我複製並使用相同的代碼,如您在question中看到的那樣,包括答案。我在package.json中的依賴關係版本設置爲4.0.2,NodeJS爲7.5.0,NPM爲4.1.2。使用MockBackend進行角度4測試返回Promise

當我開始測試response似乎是我的情況下Promise

expect(res).toBe(0);導致在控制檯上的消息Expected [object Promise] to be 0.expect(res.length).toBe(0);結尾爲Expected undefined to be 0.

當我使用官方doc的第二個例子時,會發生同樣的事情。

可以使用Angular 4.0.0依賴關係重新創建相同的問題。

任何想法?

+0

你是如何解決答覆的答案?你能告訴我們嗎? – Fals

+0

我使用了'then'的方法。現在我不記得它的行爲。通常我應該期待存根數據? – hesch

+0

我運行代碼並向'response'參數添加了'then'調用。這會導致錯誤消息'Property',然後'在類型'SomeObject []'中丟失。「 – hesch

回答

9

確保您正在導入正確的Response對象。

import { Response } from '@angular/http'; 
+0

拯救了我的生命。謝謝!相當奇怪的行爲... –

+0

實際上,這似乎是相當不幸和混亂的'lib.es6'' Response'不需要'import',唯一的指標是其他簽名。 – ciekawy

+0

你搖滾!我的頭在旋轉。太感謝了。 我同意@ blacksheep_2011。我們得到錯誤的迴應並不奇怪,但這是來自mockRespond的一個非常奇怪的反應。它應該真的拋出一個錯誤,因爲犯這樣的錯誤很容易,而現在的行爲沒有任何幫助。 –