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

问题描述 投票:0回答:3

Component.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
        });
}

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

spec.ts

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

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

angular unit-testing jasmine angular6 karma-jasmine
3个回答
1
投票

尝试一下:


0
投票

您是否尝试过这样的异步功能:


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.