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
  ]
});

Его следует добавить в начало файла (в противном случае он устанавливается после запуска тестов).

Другие вопросы по тегам