【问题标题】:Async function leads to time out in Angular Karma testing异步函数导致 Angular Karma 测试超时
【发布时间】:2020-11-21 12:30:33
【问题描述】:

Karma 再次让我感到困惑。这就是测试的样子,我在afterEach(..) 中调用httpMock.verify()。错误信息是Error: Timeout - Async function did not complete within 5000ms

it('search user service should send GET request and return data', (done) => {
    let filter = '?filter=hans'
    inject([HttpTestingController, SearchUserService],
        (httpMock: HttpTestingController, service: SearchUserService) => {
            service.findUser(filter).subscribe(data => {
                expect(data).toBeTruthy();
                done();
            });

            const req = httpMock.expectOne(`http://localhost:8080/api/rest/frontend/user${filter}`)
            expect(req.request.method).toEqual('GET')

            req.flush({
                data:
                 {
                     ..
                 }
            });
    })
  });

findUser() 函数返回一个Observable<any>。这里有什么问题?

【问题讨论】:

    标签: angular asynchronous testing karma-runner


    【解决方案1】:

    我认为您的 done 回调不会被调用。放置一个 console.log 以确保代码在订阅块内遍历。

    it('search user service should send GET request and return data', (done) => {
        let filter = '?filter=hans'
        inject([HttpTestingController, SearchUserService],
            (httpMock: HttpTestingController, service: SearchUserService) => {
                service.findUser(filter).subscribe(data => {
                    expect(data).toBeTruthy();
                    console.log('Calling done !!!!'); // Make sure you see this second
                    done();
                });
    
                const req = httpMock.expectOne(`http://localhost:8080/api/rest/frontend/user${filter}`)
                expect(req.request.method).toEqual('GET')
                console.log('Giving response !!!!'); // make sure you see this first
                req.flush({
                    data:
                     {
                         ..
                     }
                });
        })
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多