我正在弄清楚如何解决我的Angular组件单元测试中遇到的问题。
我收到此错误:
'TypeError:无法读取未定义的属性'subscribe''
因为我的组件(MyComponent)实现了ngOnInit方法,该方法想要订阅声明为'@Input foo:Observable;'的Input变量。在我的组件中。 在通过TestBed构建组件时,将调用其Constructor()并随后调用ngOnInit()。但是,我正在努力在哪里/ whgen初始化myComponent.foo = boundVarFromHostComponent;。,以便在ngOnInit方法被调用时myComponent.foo具有一个值,并且ngOnInit可以订阅。
不幸的是,这种方法是不可能的。在构造之前不可能分配组件的输入。在构造函数之后但在ngOnInit调用之前也是不可能的。 我考虑将Input变量初始化为诸如of(null)或of({...})之类的值,以便在ngOnInit中成功进行订阅(但是我发现这比适当的解决方案更像是一种hack,因为您需要考虑有关实现的初始化的功能含义)。 不幸的是,有角网站无法解决这种情况。