测试 Angular 8 ngOnInit 的订阅

Testing subscriptions for Angular 8 ngOnInit

我正在尝试学习 angular 使用 Karma 和 Jasmine 进行单元测试。

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

感谢您的帮助:)

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