Ошибка: Ожидается один соответствующий запрос по критериям «Соответствие по функции:», не найдено - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть файл userService.spec.ts, который я хочу проверить. Код идет по этому пути.Он вызывает функцию get, которая вызывает ADMIN_API_URL. Я пытался протестировать данный файл, но получил ошибку, которая упоминается в заголовке.Мой user.service.spec.ts файл.

 describe('Service: User service', () => {
 let httpMock: HttpTestingController;
 let userService: UserService;
 let url: string;

  beforeEach(() => {
   TestBed.configureTestingModule({
    imports: [HttpClientTestingModule],
     providers: [
    { provide: AUTH_API_URL, useValue: 'https://auth.example.com/api/' 
      },
    { provide: SSO_API_URL, useValue: 'https://sso.example.com/auth/api/' },
    { provide: WIT_API_PROXY, useValue: 'https://wit.example.com/api/'},
    { provide: ADMIN_API_URL, useValue: 'https://admin.example.com/api/'},
    { provide: REALM, useValue: 'realm' },
    Broadcaster,
    Logger,
    AuthenticationService,
    HttpHandler,
    UserService
  ]
});
httpMock = TestBed.get(HttpTestingController);
url = TestBed.get(ADMIN_API_URL);
userService = TestBed.get(UserService);
 });

 it('Get user by user name returns valid user', (done) => {
const testUser = [{
  'attributes': {
    'fullName': 'name',
    'imageURL': '',
    'username': 'myUser'
  },
  'id': 'userId',
  'type': 'userType'
}];
userService.getUsersByName('name').subscribe((user) => {
  expect(user[1].id).toEqual('userId');
  done();
});
const req = httpMock.expectOne(request => request.method === 'GET'
&& request.url === `${url}search/users?q=name`);
req.flush({data: testUser});
 });
});

Я пытался протестировать все, что у меня на уме, но все еще не могу найти, что не так с моим кодом.Я делаю какую-нибудь глупую ошибку?

1 Ответ

0 голосов
/ 09 апреля 2019

Скорее всего, URL не совпадают.Условие ожидаемого (request.url === $ {url} search / users? Q = name ), вероятно, не выполняется.Вы можете войти в свой URL-адрес фиктивного запроса, чтобы увидеть, каков фактический URL.

        const req = httpMock.expectOne(request => {
    console.log("url ", request.url); return true;
});
...