相关疑难解决方法(0)

错误:预计没有打开的请求,找到1

当我尝试执行HTTP单元测试用例时,我收到此错误

我正在使用Angular 5.我该如何解决这个问题

下面是我正常GET的代码.下面的代码只是带来正常的GET

import { TestBed } from '@angular/core/testing';
import { HttpClientTestingModule, HttpTestingController, TestRequest } from 
'@angular/common/http/testing';

import { DangerService } from './danger.service';
import { DangerFlag } from '../danger.model';


describe('DataService Tests', () => {
    let dataService: DangerService;
    let httpTestingController: HttpTestingController;

    let testDangerFlags: DangerFlag[] = [ "sample data" ]

    beforeEach(() => {
        TestBed.configureTestingModule({
        imports: [ HttpClientTestingModule ],
        providers: [ DangerService ]
    });

    dataService = TestBed.get(DangerService);
    httpTestingController = TestBed.get(HttpTestingController);
});

afterEach(() => {
    httpTestingController.verify();
});

fit('should get all danger flags', () …
Run Code Online (Sandbox Code Playgroud)

angular

7
推荐指数
3
解决办法
8103
查看次数

Angular 6单元测试http获取请求

我有一个组件,其中我在一个函数中有一个请求:

getData():Observable<any>{
    return this._http.get('/app/data', {observe: 'response'});
}
Run Code Online (Sandbox Code Playgroud)

它向我返回订阅中的对象数组,例如:

[{name: 'a'}, {name: 'b'}]
Run Code Online (Sandbox Code Playgroud)

或类似的东西。

我想编写一个测试,以确保getData()使用正确的url一次调用http GET,并且预订返回类似数组的内容。

我的代码:

...
    it('getData() should http GET names', () => {
        inject([HttpTestingController], (httpMock: HttpTestingController) => {

          const names = [{name: 'a'}, {name: 'b'}];

          component.getData().subscribe((res) => {
            expect(res).toEqual(names);
          });

          const req = httpMock.expectOne('/app/data');
          expect(req.request.method).toEqual("GET");
          req.flush(names);

          httpMock.verify();
        });
      });
...
Run Code Online (Sandbox Code Playgroud)

我的测试失败,并显示以下消息:“预期没有打开的请求,发现1:GET / app / data”

unit-testing angular

1
推荐指数
1
解决办法
4052
查看次数

标签 统计

angular ×2

unit-testing ×1