angular - 无法为以 Angular 扩展基类的组件运行单元测试

标签 angular angular-unit-test

我正在尝试为扩展基类的组件编写单元测试。

component.ts

   export class DesktopPresentationAreaComponent extends AbstractPresentationComponent {
            constructor() {
                super(store, webcast);
            }
   }

基类

export abstract class AbstractPresentationComponent {
    constructor(protected store: MainStorageService,
                protected webcast: WebcastService) {
        this.store.get('state').subscribe();
    }

当我运行“ng test”时,它显示以下错误。

TypeError: Cannot read property 'subscribe' of undefined in AbstractPresentationComponent

我该如何解决这个问题?

最佳答案

您需要获取“MainStorageService”实例。然后监视'store.get('state')'。例如

获取服务实例

store = fixture.debugElement.injector.get(MainStorageService);

监视 get 方法

spyOn(store, 'get').and.callFake(() => {
    return Observable.from([]);
})

关于angular - 无法为以 Angular 扩展基类的组件运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57687719/

相关文章:

javascript - Jasmine Angular 测试指令应该失败

javascript - AG-GRID - 无法从 REST 获取数据

javascript - 从脚本文件而不是从 CLI 运行 Angular CLI 脚本?本地化/国际化

javascript - 在 Angular 8 中的另一个应用程序中引用服务代码

angular - 测试 angular if else block 和 subscribe(response => {} block in jasmine

Angular 4单元测试模板解析错误:

Angular v5 抛出带有共享数据的 ExpressionChangedAfterItHasBeenCheckedError

用于将 FormGroup 作为 @Input 传递的 Angular 单元测试

angular - 在Angular 2+单元测试中导入 stub 文件

angular - 单元测试 - Angular 9 中未定义的 ag-grid API onFilterChanged