angular - 如何模拟将返回被拒绝承诺的服务上的函数?
问题描述
我正在使用 Angular 6 和 Jasmine 来测试我的代码。
我有一个调用服务登录的函数,该服务返回一个承诺,该承诺将根据登录是否成功而拒绝或解决。
我不希望实际的服务功能运行,所以我一直在尝试模拟它,我想要它做的只是返回一个将拒绝但我无法弄清楚语法的承诺。我已经搜索了几个小时,但没有任何效果,这种可能性似乎在任何地方都没有涵盖。
谁能提供一个示例,说明您将如何模拟服务功能以提供拒绝的承诺?
解决方案
从模拟功能,你做:return Promise.reject(your value)
.
它将创建一个Promise
在查询时直接拒绝的。
从您的评论中编辑:
因此,如果您使用 Jasmine 设施,您可以使用mockLoginService.login.and.returnValue(Promise.reject())
来获取模拟功能并拒绝登录尝试。
推荐阅读
- mongodb - mongodb 在身份验证启用模式下不要求身份验证
- python - --all 标志对 conda env 删除有什么作用?
- laravel - Laravel Nova - 删除相应的数据库条目后如何从磁盘中删除图像?
- java - 如何将文件夹、资源和 pom 文件从 maven 项目获取到另一个 maven 项目?
- java - 使用 java 注解创建局部变量
- google-cloud-firestore - 使用虚幻引擎的 VaRest 插件从 Firestore 读取数据的最佳方法?
- ruby-on-rails - 使 WebSocket 与 Ruby on Rails 与 Puma 和 Nginx 一起工作
- node.js - Multipart/form-data 使用 axios API Rest 发送空数据
- c - 我如何在这里获得最后一个 printf 语句来打印用户输入的 x 和 y 的输出?
- sql - case 语句不返回所有值