Angular test: никаких зависимостей управления
Я новичок в angular 8. Я написал несколько компонентов и сейчас пишу тесты (но зритель, но это не против).
Я хочу написать простые тесты, только проверю, успешно ли созданы компоненты.
Я считаю управление зависимостями ужасным, я тратил в 10 раз больше раз на поиск необходимых зависимостей, чем на написание тестов.
Неужели нельзя этого избежать? Библиотека, которая могла бы справиться с этим за нас? Или вставлять все зависимости по умолчанию?
Спасибо.
Редактировать 1: дело в том, что я использую материал, который требует множества зависимостей. В качестве примера зависимостей компонента, который я хочу протестировать:
import { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { MatSnackBar } from '@angular/material/snack-bar';
import { MainFormService } from 'src/app/modules/shared/services/main-form.service';
2 ответа
Если ваш тест неглубокий, вы можете использовать:
schemas: [
NO_ERRORS_SCHEMA
]
НО не рекомендуется использовать это слишком много! Но, как вы сказали, вы хотите создать только компонент. Тогда это должно тебе помочь.
Я нашел решение своей проблемы, однако не знаю, является ли это хорошей практикой или опасно. Я удивлен, что никто не публиковал его раньше, потому что у других людей такая же проблема.
С помощью зрителя добавьте в файл test.ts:
defineGlobalsInjections({
imports: [
FormsModule,
ReactiveFormsModule,
RouterModule.forRoot([]),
CommonModule,
MatTabsModule,
MatSnackBarModule,
MatTableModule,
MatInputModule,
MatFormFieldModule,
MatSelectModule,
MatButtonModule
]
});
Его следует добавить в начало файла (в противном случае он устанавливается после запуска тестов).