javascript - 期望返回值等于 $promise

标签 javascript angularjs promise karma-jasmine

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

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

我在测试代码中使用了 karma 和 jasmine,如下。

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

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

最佳答案

你可以这样做

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

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

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

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

我预计,通常您会对 Promise 解决时会发生什么更感兴趣。

关于javascript - 期望返回值等于 $promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51897432/

相关文章:

javascript - A-Frame 将所有声音静音,包括单击按钮时的声音组件

javascript - ES6 Javascript Promise - 在调用 .then() 之后执行

javascript - 如何在构造函数中调用 promise 对象来设置属性

javascript - Promise 函数在 document.getElementById 之后运行

javascript - 为什么我的 ng-view 动画不工作?

javascript - 滚动到位置时使导航栏保持不变

javascript - 这个 jQuery 选择是什么意思?为什么我们在 filter() 中使用 "this"?

javascript - 如何将参数传递给 $routeProvider 中的 Controller ?

javascript - 解析带反斜杠的 json 对象并将其添加回数据 json

angularjs - ngToast 消息显示在模态弹出窗口后面