Как вы издеваетесь над DOCUMENT (теневым представлением HTMLDocument) в Angular?Реализация использует это в конструкторе:
@Inject(DOCUMENT) private document: Document
Посмотрев на это Как внедрить Document в службу Angular 2 Я поместил это в мои настройки .spec:
const lazyPath = 'dummy';
const pathname = `/${lazyPath}`;
const document = { location: { pathname } as Location } as Document;
beforeEachProviders(() => ([ {provide: DOCUMENT, useValue: document} ]));
Но это дает мне ошибки:
ERROR in ./src/app/main/components/app-lazy/app-lazy.component.spec.ts
Module not found: Error: Can't resolve '@angular/core/testing/src/testing_internal' in '...'
resolve '@angular/core/testing/src/testing_internal' in '....'
Parsed request is a module
using description file: .../package.json (relative path: ...)
Field 'browser' doesn't contain a valid alias configuration
resolve as module
Когда я использую простых провайдеров: [] в TestBed.configureTestingModule вместо beforeEachProviders из пакета testing_internal, компонент не определен, например, не инициализирован должным образом,Он инициализируется только в модульных тестах (в не тестовом исполнении оба работают), когда я переключаюсь с внедренного документа на объект окна (для которого я не могу установить / смоделировать местоположение).Что я могу сделать?