【问题标题】:Testing subscriptions for Angular 8 ngOnInit测试 Angular 8 ngOnInit 的订阅
【发布时间】:2020-02-12 22:51:00
【问题描述】:

我正在尝试使用 Karma 和 Jasmine 学习角度单元测试。

我的问题是,当我尝试测试组件是否已创建时,我得到:'TypeError: Cannot read property 'subscribe' of undefined' 因为我在 ngOnInit() 中有订阅,我不知道如何在方法中测试订阅。

感谢您的帮助:)

【问题讨论】:

    标签: angular unit-testing jasmine karma-jasmine


    【解决方案1】:

    您在 init 生命周期中订阅的所有 observable 都是组件的输入,因此您必须在测试中设置此值。

    it('should create', () => {
        // Here you have to set every input used on your ngOnInit()
        component.cast = new Observable((observer) => { observer.next(true); });
        component.cast2 = new Observable((observer) => { observer.next(true); });
        component.cast3 = new Observable((observer) => { observer.next('test'); });
        expect(component).toBeTruthy();
    });
    

    【讨论】:

    • 它现在可以工作了 :) 非常感谢我对单元测试很陌生。
    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 2019-04-16
    • 2018-06-12
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    相关资源
    最近更新 更多