typescript - 单元测试:TypeError:无法读取未定义的属性 'pipe'
我正在尝试为我组件中的一个函数编写单元测试,在这个例子中,它是 'setup'。'setup' 调用另一个函数 'additionalSetup',该函数在执行 pipe(take(1)) 时订阅 store,并获取第一次发射的数据:
private setup() {
// ...declares/assigns a few variables in the component
this.additionalSetup() ;
}
private additionalSetup() {
this.store.pipe(take(1)).subscribe(/*logic here, but you get the idea*/);
}
我的单元测试似乎因为以下错误而失败:
类型错误:无法读取未定义的属性 'pipe'
在 'setup' 单元测试中,我尝试模拟 'additionalSetup':
component.additionalSetup = jest.fn();
这似乎不起作用。我对 Jest 还比较新,还在学习。我应该采取什么方法来解决这个错误?
答案#1
您的组件已经创建,因此已经调用了component.additionalSetup。您必须在创建组件之前模拟additionalSetup才能解决这个问题。
这可以很容易地使用 Angular 测试库 完成
const component = await render(MyComponent, {
componentProperties: {
additionalSetup : jest.fn(),
},
});
或者你可以自己实现这个
