Допустим, у меня есть простой модуль AppModule
, в котором много импортов, объявлений и провайдеров. Теперь я хочу написать тест для компонента ListComponent
, который находится в списке объявлений этого модуля. Сам ListComponent
использует многие (но не все) импортные файлы AppModule
. Я делаю это так:
import { TestBed } from '@angular/core/testing';
// +same copy-pasted list of imports from `AppModule`
beforeEach(done => {
TestBed.configureTestingModule({
imports: [
// +same copy-pasted list of imports from `AppModule`
],
declarations: [
// +same copy-pasted list of declarations from `AppModule`
],
providers: [
{
provide: Http,
useClass: HttpMock,
},
{
provide: Router,
useClass: RouterMock,
}
// +same copy-pasted list of providers from `AppModule`
]
});
Это работает, но, безусловно, это неправильный подход. Я не хочу копипастить так много. Может быть, я могу повторно использовать AppModule каким-то удобным способом? Псевдокод будет выглядеть так:
let appModule = new AppModule();
beforeEach(done => {
TestBed.configureTestingModule({
imports: appModule.imports,
declarations: appModule.declarations,
providers: [...appModule.providers,
{
provide: Http,
useClass: HttpMock,
},
{
provide: Router,
useClass: RouterMock,
}
]
});
Но я просто не знаю/не могу найти синтаксис для такого подхода :(