预期有一个匹配请求,找到2个请求。如何测试2个请求

时间:2019-02-25 11:34:16

标签: angular jasmine karma-coverage

我正在开发Angular应用程序,正在使用Jasmine测试该应用程序。

我要用一种方法,例如ngOnInit()测试两个相似 HTTP请求。

我有一个ngOnInit()方法中被两次调用的HTTP请求, 现在写我使用的测试用例会引发如下错误:

  

错误:对于标准“匹配URL:http://localhost:8080/api/demoList”,预期有一个匹配请求,找到了2个请求。

例如,

// method to test

ngOnInit() {
  this.httpGetRequest();
  // some other code
  this.httpGetRequest();
}

this.httpGetRequest() {
  this.httpClient.get(http://localhost:8080/api/getSomeList);
}

//test case for ngOnInit()

it('should do something', () => {
  spyOn(component, 'ngOnInit').and.callThrough();
  component.ngOnInit();

  const req = httpTestingController.expectOne(`http://localhost:8080/api/getSomeList`);
  expect(req.request.method).toEqual('GET');
  req.flush(mockList);
});

如何测试一个以上的类似URL请求?

1 个答案:

答案 0 :(得分:1)

您可以使用match方法而不是expectOne。在您的情况下,它应返回一个包含2个元素的数组,每个相似的请求一个。