У меня есть класс AppGlobal, который вставляется в AppModule, а затем я использую этот одноэлементный класс для создания экземпляров зависимостей.но я получаю следующую ошибку:
TypeError: Невозможно прочитать свойство 'get' undefined в новом StopWatchComponent (webpack: ///./src/app/UserSection/Components/StopWatchComponent.ts?: 27: 109)
@Injectable()
export class AppGlobal {
AppModule.injector.get(MyService)`
public static injector: Injector;
constructor(injector: Injector) {
AppGlobal.injector = injector;
}
}
проверяемый компонент
export class StopWatchComponent implements OnInit {
public title: string;
private stopWatchService: StopWatchService;
constructor() {
this.stopWatchService = AppGlobal.injector.get(StopWatchService);
console.log('constructor');
}
корневой модуль
export class AppModule {
constructor(_appGlobal: AppGlobal) {
}
}
контрольные примеры
describe('StopWatchComponent', () => {
let component: StopWatchComponent;
let fixture: ComponentFixture<StopWatchComponent>;
// let el: HTMLElement;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
FormsModule
],
declarations: [ StopWatchComponent ],
providers: [AppGlobal
{provide: StopWatchService, useClass: StopWatchServiceMock}]
}).compileComponents()
.then(() => {
console.log('configureTestingModule ok');
}).catch((e) => {
console.log(e.message);
throw e;
});
fixture = TestBed.createComponent(StopWatchComponent);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should have title User stopwatch', () => {
expect(component.title).toEqual('User stopwatch');
});