2017-04-18 62 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的一个非常奇怪的反应。它应该真的抛出一个错误,因为犯这样的错误很容易,而现在的行为没有任何帮助。 –