错误:supportsScrollBehavior未声明为可配置 [英] Error: supportsScrollBehavior is not declared configurable

查看:33
本文介绍了错误:supportsScrollBehavior未声明为可配置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试监视如下所示的角度platform服务的函数supportsScrollBehavior-

import * as platform from '@angular/cdk/platform';
  describe('Supporting Scroll Behaviour', () => {
    beforeEach(() => {
      const funcSpy = jasmine.createSpy('supportsScrollBehavior').and.returnValue(true);
      spyOnProperty(platform, 'supportsScrollBehavior', 'get').and.returnValue(funcSpy);
    });
  });
});

但它给我的错误如下-

Error: supportsScrollBehavior is not declared configurable

在角度8中,它工作正常,但在角度9版本中,它给出此错误。任何指示都将非常有用。

推荐答案

不可能再监视单独导出的函数。 https://github.com/jasmine/jasmine/issues/1414

有一些可能可行的解决办法,但没有适用于所有";的解决方案。

以上链接报价:

在tsconfig.json中实际设置";module";:";commonjs";可解决此问题,您可以再次使用spyOn。

对我来说,这不管用。Jasmine需要一个放置间谍的地方,所以我创建了一个包装类,以便将间谍安装在该类上,而不是安装在模块上。

import { supportsScrollBehavior as cdkSupportsScrollBehavior} from '@angular/cdk/platform';

export class CdkWrapper {
    public static supportsScrollBehavior(...args) {
        return cdkSupportsScrollBehavior(...args);
    }
}

您在规范文件中的用法如下:

spyOn(CdkWrapper , 'supportsScrollBehavior').and.returnValue(true);

记住还要在您正在测试的组件中使用该包装器!

CdkWrapper.supportsScrollBehavior()

这篇关于错误:supportsScrollBehavior未声明为可配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆