【问题标题】:How to mock a function on a service that will return a rejected promise?如何模拟将返回被拒绝承诺的服务上的函数?
【发布时间】:2019-01-23 17:08:09
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: angular jasmine


    【解决方案1】:

    从模拟函数中,您可以:return Promise.reject(your value)

    它会创建一个Promise,当被查询时会直接拒绝。

    编辑您的评论

    所以如果你使用 Jasmine 设施,你可以使用mockLoginService.login.and.returnValue(Promise.reject()) 来获得模拟能力并拒绝登录尝试。

    【讨论】:

    • 我正在使用mockLoginService.login.and.returnValue(),您的答案在哪里适合,或者不是吗?
    • mockLoginService.login.and.returnValue(Promise.reject()) 完美运行!你会编辑你的答案以包含这个或这个的某个版本,因为几乎不可能在网上找到确切的语法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 2015-12-25
    • 2015-05-29
    • 2017-08-19
    • 2022-01-23
    • 2020-11-21
    相关资源
    最近更新 更多