错误:supportsScrollBehavior未声明为可配置 [英] Error: supportsScrollBehavior is not declared configurable
本文介绍了错误: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屋!
查看全文