Я обычно импортирую все зависимости по отдельности, так как я проверяю, что тест загружает только те зависимости, которые ему действительно нужны.Тем не менее, я нашел способ легко сделать все зависимости доступными для вашего тестового скрипта без необходимости индивидуального импорта каждой зависимости.Вместо того чтобы импортировать все зависимости по отдельности, импортируйте модуль, который объявляет ваш компонент тестируемым.Импортируя модуль в свой модульный тест, вы сделаете все зависимости, включая сервисы и сам компонент, доступными для ваших тестов.
Обычно я стараюсь объявлять зависимости, чтобы избежать перегрузки теста кодом, который он не использует, что, теоретически, обычно замедляет выполнение тестов.Похоже, что это может быть хорошо для вашего варианта использования, так как у вас есть так много тестов для записи.
Кроме потери в скорости, я не знаю других недостатков, но они могут быть.Если кто-нибудь знает что-либо, пожалуйста, добавьте их в качестве комментариев к этому сообщению.
PS Могут быть зависимости, которые импортируются вашим AppModule.Их, возможно, придется импортировать по отдельности вместе с модулем объявления компонента.
Тестовый скрипт
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { EasyImportComponent } from './easy-import.component';
import { EasyImportModule } from './easy-import.module';
describe('EasyImportComponent', () => {
let component: EasyImportComponent;
let fixture: ComponentFixture<EasyImportComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [ EasyImportModule ]
//, declarations: [ EasyImportComponent ] <-- No longer needed since module declares this already
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EasyImportComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});