Ложный тест со статическими данными Jasmine, похожими на вызов http - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь настроить пробный тест с Жасмин в угловом для этого звонка. Сбой при вызове метода handleSuccess, но ответ undefined.

Код AuthenticationService:

public login(cred): Observable<any> {

  const data = {};
  return this.http.post(this.url, data, { observe: 'response' }).map(
    response => this.handleSuccess(response)
  );
}

Тестовый код:

describe('AuthenticationService', () => {

beforeEach(() => {
    TestBed.configureTestingModule({
    providers: [
        AuthenticationService,
        { provide: HttpClient, useClass: MockHttpClient }
    ]
    });
});

it('should be created', inject([AuthenticationService], (service: AuthenticationService) => {
    spyOn<any>(service, 'handleSuccess').and.callThrough();
    expect(service).toBeTruthy();
    service.login({userId: 'XY12345', userPassword: 'password'})
    .subscribe((resp) => {
        expect(service['handleSuccess']).toHaveBeenCalled(); 
    });
  }));
});


class MockHttpClient {
  post(url: string, body: any, options: any) {
    return Observable.of({
      response: {
        headers: {},
        body: {}
      }
    });
  }
}
...