【问题标题】:Expect returned value to equal $promise期望返回值等于 $promise
【发布时间】:2018-08-17 14:21:50
【问题描述】:

我有一个返回$promise的函数。

service.getPromise = () => {
    return myService.myFunction().$promise
};

我在我的测试代码中使用了业力和茉莉花,如下。

it('should return a $promise', function () {
    expect(service.getPromise()).toEqual(???);
});

如您所见,我不确定要匹配什么或如何创建 $promise,以便我可以测试返回的实际是否是 $promise

【问题讨论】:

    标签: javascript angularjs promise karma-jasmine


    【解决方案1】:

    你可以这样做

    expect(service.getPromise() instanceof Promise).toBe(true);
    

    编辑:或者如果您使用 Angular 的 $q 承诺,

    expect(service.getPromise() instanceof $q).toBe(true);
    

    如果你只关心它是否返回一个 promise 类型的值。或者,您可以检查返回的对象是否具有您期望的成员(例如 then

    不过,我预计,通常你会对 promise 解决时发生的事情更感兴趣。

    【讨论】:

    • 实际上使用instanceof $q 有效但不是instanceof Promise
    • 哦,好点,你当然在使用角度。我已经编辑了答案。
    猜你喜欢
    • 2018-11-05
    • 2021-06-21
    • 2021-05-01
    • 2016-12-24
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    相关资源
    最近更新 更多