Вы издеваетесь над методом, который пытаетесь проверить. Вот почему покрытие говорит, что это не проверено.
В вашем тестовом примере вы только проверяете, что вы имитируете работу, но не то, что функция делает то, что вы ожидаете.
Вы не должны насмехаться getAll
, а вместо этого насмехаться над http client.
Существует HttpClientTestingModule именно для этих случаев.
Вам потребуется включить этот модуль в свой TestBed
beforeEach(() => {
TestBed.configureTestingModule({
providers: [YourServiceUnderTest],
imports: [HttpClientTestingModule]
});
});
с этой настройкой, вы можете написать такой тест:
it('getAll', () => {
const mockResponse: Todo[] = [new Todo(1)];
const service = TestBed.get(YourServiceUnderTest);
const httpTestingController = TestBed.get(HttpTestingController);
service.getAll()
.subscribe(data => {
expect(data).toEqual(mockResponse);
});
const req = httpTestingController.expectOne('YOUR-URI-GOES-HERE');
expect(req.request.method).toEqual('GET');
req.flush(mockCourse);
});
Может быть, посмотрите на эти статьи:
Проверка Http-запросов
Тестирование с HttpClient