Я хочу знать, как я могу проверить свою сервисную функцию, которая получает http и отправляет вызовы. Я мог настроить файл спецификации, в котором я мог бы создать экземпляр службы, также следуя нескольким сайтам для создания службы mockhttp. Он говорит: «httpMock.expectOne - это не функция»
ссылка отсюда: https://alligator.io/angular/testing-http-interceptors/
describe('Service: UserSearchService', () => {
class AppLookupServiceStub {
//some functions
}
UserSearchService = new UserSearchService(httpMock,
appLookUpService);
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
HttpClientTestingModule
],
providers: [
AppHttpService,
HttpClient,
AppCookieService,
CookieService,
{ provide: AppLookupService, useClass: AppLookupServiceStub },
AppConstants
]
});
});
beforeEach(async() => {
service = TestBed.get(UserSearchService);
httpMock = TestBed.get(AppHttpService);
selectedCriteria = [
//some data
]
UserSearchOptions = {
//some data
}
});
it('should have a service instance', () => {
expect(service).toBeDefined();
});
it('should make expected calls to getUserSerachOptions', inject(
[AppHttpService, UserSearchService],
(
httpMock: AppHttpService,
dataService: UserSearchService
) => {
// let spy = spyOn(service, 'getUserSerachOptions');
// UserSearchService.getUserSerachOptions();
// expect(spy).toBeDefined();
dataService.getUserSerachOptions().subscribe(UserSearchOptions => {
expect(UserSearchOptions).toEqual(UserSearchOptions);
});
const req = httpMock.expectOne(`AppConstants.ADMIN_CENTRAL_SELECTION_CRITERIA_URL`);
expect(req.request.method).toBe("GET");
req.flush(UserSearchOptions);
}));
it('should get the data successful', () => {
service.getUsersBySelectionCriteria(selectedCriteria[0]).subscribe((data: any) => {
console.log(data);
expect(data.country.name).toBe('Australia');
});
});
})
Спецификация теста для обслуживания:
getUserSerachOptions(): Observable<UserSearchOptions> {
if (!this.userSearchCriteriaOptions) {
return this.appHttpService.get('{apiUrl}/xyzproject/{devKey}/userSelectionCriteria').pipe(map(
(data: UserSearchOptions) => {
this.userSearchCriteriaOptions = data;
return this.userSearchCriteriaOptions;
}
));
}
return of( this.userSearchCriteriaOptions);
}
Как мне посмеяться над вызовом, я не могу найти источники в этом случае.