测试Angular 8 ngOnInit的订阅

时间:2019-10-16 08:04:12

标签: angular unit-testing jasmine karma-jasmine

我正在尝试与Karma和Jasmine一起学习角单元测试。

我的问题是,当我尝试测试创建的组件时,得到:'TypeError:无法读取未定义的属性'subscribe'' 因为我在ngOnInit()中有订阅,而且我不知道如何在方法内部测试订阅。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

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

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();
});