繁体   English   中英

使用Karma-Jasmine在Angular内以承诺测试服务

[英]Test a service with a promise inside in Angular with Karma-Jasmine

我开始使用Karma和Jasmine在Angularjs中测试服务。 我不知道$ q是如何工作的,我从来没有使用过它,反正我也不知道这里是否有必要。 我的问题是我有一个服务,该服务具有1个函数,该函数调用该服务内部的另一个函数(带有承诺):

这是调用sendMetrics的函数(具有promise)

在此处输入图片说明

这是我的测试,我曾尝试使用$ digest对$ q进行尝试,但是却遇到了有关cookie的错误(我已经对其进行搜索,这可能是因为我的角度-茉莉花版本)。 我也尝试过茉莉花间谍,但我不想再次构建所有服务。

我只想解决保证检查值是2而不是1的承诺。 在此处输入图片说明

这是有前途的功能。 在此处输入图片说明

也许这个问题是重复的还是不是重复的,但是如果我需要使用$ q,我需要为不知道如何使用$ q的人提供答案。 到目前为止,我还没有发现任何帮助。

我认为您必须直接在sendMetrics中返回诺言,然后在sendSearchMetrics中对其进行处理。 现在,您没有从sendMetrics中的promise中返回promise,而是试图像对待Promise一样使用它。

终于我明白了:

只需在beforeEach中添加httpBackend,然后使用$ httpBackend.expect(...)

之后,调用您的promise函数并使用$ httpBackend.flush(),它将使它起作用。

在此处输入图片说明 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM