Я пытаюсь протестировать службу, использующую HttpClient, у меня есть это:
export class LoginService {
constructor(
private http: HttpClient,
private config: AppConfig,
private auth: AuthService
) {}
Итак, в .spec:
describe('LoginService', () => {
let service;
let httpClient: HttpClient;
let httpTestingController: HttpTestingController;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
providers: [LoginService, AuthService, AppConfig]
});
httpClient = TestBed.inject(HttpClient);
httpTestingController = TestBed.inject(HttpTestingController);
service = TestBed.get(LoginService);
});
Но он не работает, потому что я не могу импортировать Inject, появляется эта ошибка: Свойство 'inject' не существует для типа 'TestBedStatic', как я могу импортировать инъекцию? и, другой вопрос, нормально ли настраивать тест?
1 ответ
TestBed.inject
был введен в Angular 9, в Angular 7 вы должны использовать TestBed.get
. Вы можете проверить это в документации.
По поводу тестовой конфигурации: выглядит нормально. В общем, рекомендуется добавлять:
afterEach(() => {
httpTestingController.verify();
});
При использовании HttpTestingController
Похожие вопросы
Новые вопросы
angular
Вопросы об Angular (не путать с AngularJS), веб-фреймворке от Google. Используйте этот тег для вопросов Angular, которые не относятся к отдельной версии. Для более старой веб-инфраструктуры AngularJS (1.x) используйте тег AngularJS.