我正在编写单元测试用例,并试图监视服务功能,但被困在将数组转换为可观察到的状态上,我在堆栈溢出方面尝试了类似的问题,但没有任何效果。请帮助我如何调用服务功能
我正在开发最新版本的angular和ngrx
我尝试过的选项
1)
spyOn(service, 'getData').and.returnValue(Observable.of(data));
2)这个未涵盖单元测试组件中的订阅部分
spyOn(service, 'getData').and.returnValue(of(data));
整个代码:测试用例永远不要输入this.dataService.getState()的订阅部分”>
// component:
getState(){
this.dataService.getState().subscribe(s => s.forEach(element => {
this.data.push(element.name);
}));
}
//test case
beforeEach(() => {
fixture = TestBed.createComponent(DataComponent);
component = fixture.componentInstance;
service = TestBed.inject(DataService);
fixture.detectChanges();
});
it('should call get data Function', () => {
spyOn(service, 'getData').and.returnValue(of(data));
});
我正在编写单元测试用例,并试图监视服务功能,但被困在将数组转换为可观察到的状态上,我在堆栈溢出方面尝试了类似的问题,但没有任何效果。请帮助我...
[设置测试时,调用fixture.detectChanges
时组件会实例化。由于实例化调用生命周期挂钩,因此ngOnInit
函数中的任何代码都将在您的第一个测试规范之前执行。
如果data
是常数,请执行:
您正在fixture.detectChanges()
内部运行beforeEach
是问题。调用detectChanges
的那一刻,您的组件已初始化,因此,请如下修改代码