首页 > 解决方案 > 如何模拟将返回被拒绝承诺的服务上的函数?

问题描述

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

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

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

谁能提供一个示例,说明您将如何模拟服务功能以提供拒绝的承诺?

标签: angularjasmine

解决方案


从模拟功能,你做:return Promise.reject(your value).

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

从您的评论中编辑

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


推荐阅读