小编De *_*nni的帖子

如何使用 jest - Angular 测试带参数的请求 http

我正在使用 Jest 测试 Angular 服务。

我可以模拟我的 httpClient,但我有一个问题是我无法使用参数测试 url(例如:“ http://localhost:8080/api/feature/num?id=25663 ”)。

这是我的测试代码:

describe('MyService', () => {
   let myService: MyService;
   const httpMock = {get: jest.fn(() => of(dataMock))};
   const provide = (mock: any): any => mock;

   beforeEach(() => {
      myService= new MyService(provide(httpMock));
   });

   test('should created', () => {
     expect(myService).toBeTruthy();
   });

   test('should retrieve one user', (done) => {
     const number = 26586;
     const url = 'http://localhost:8080/api/feature/num?number=25663';

     myService.getNumero(number).subscribe( 
       res => {
          expect(httpMock.get).toBeCalledWith(url);
          expect(res.number).toBe(number);
          expect(res.city).toEqual('PARIS');
          done();
     });
   });
});
Run Code Online (Sandbox Code Playgroud)

在我的控制台中我有这个错误:

Error: Uncaught [Error: expect(jest.fn()).toBeCalledWith(...expected)

Expected: "http://localhost:8080/api/feature/num?number=25663" …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing jestjs angular angular-test

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

标签 统计

angular ×1

angular-test ×1

javascript ×1

jestjs ×1

unit-testing ×1