如何在服务上模拟将返回被拒绝的承诺的函数?

时间:2019-01-23 17:08:10

标签: angular jasmine

我正在使用Angular 6和Jasmine来测试我的代码。

我有一个调用服务进行登录的函数,该服务会返回一个承诺,该承诺将根据登录是否成功而拒绝或解决。

我不希望实际的服务功能运行,所以我一直在尝试模拟它,我想要做的就是返回一个承诺,该承诺将被拒绝,但我不知道语法。我已经搜索了几个小时,但没有任何效果,这种可能性似乎在任何地方都没有涉及。

任何人都可以提供一个示例,说明您如何模拟服务功能以提供将被拒绝的承诺吗?

1 个答案:

答案 0 :(得分:2)

通过模拟功能,您可以执行:return Promise.reject(your value)

它将创建一个Promise,在查询时将直接拒绝。

根据您的评论进行编辑

因此,如果您使用Jasmine工具,则可以使用mockLoginService.login.and.returnValue(Promise.reject())获得模拟功能并拒绝登录尝试。