gpt4 book ai didi

angular - 无法读取未定义的属性 'pipe' - Angular 6

转载 作者:行者123 更新时间:2023-12-05 08:12:41 25 4
gpt4 key购买 nike

组件.ts

// Component containing function
Public myData(){
this.myService.getData()
.pipe(
take(1),
catchError((err: any) => {
this.myRows = [];
return throwError(err);
}),
finalize(() => {
console.log('In Finally');
})
)
.subscribe((rows) => {
this.myRows = rows;
// Do something
});
}

我的服务.ts

// Service Call
public getData(): Observable < customer[] > {
const url = 'some url';
return this.http.get(url).pipe(
map(this.checkForError),
catchError((err: HttpErrorResponse) => {
return throwError(err);
}),
map(this.myJson),
share()
);
}

规范

    // Test Case
it('should test', () => {
let test = spyOn(myService, 'getData');
component.myData();
expect(test).toHaveBeenCalled();
});

无法解决此错误。无法找到编写服务调用测试用例的简单方法。我们如何解决管道错误?

最佳答案

错误似乎在 this.myService.getData().pipe(...
因为在您的测试中,您监视“getData”但您没有返回任何值,尤其是没有返回来自 spy 的 Observable。

你可能想在测试中做什么:

const customers = []; // define here your testing array
spyOn(myService, 'getData').and.returnValue(of(customers)); // "of" is a Rxjs function to create an Observable

关于angular - 无法读取未定义的属性 'pipe' - Angular 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59660136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com