Контекст
Я создал класс ApiService
, чтобы иметь возможность обрабатывать наши пользовательские запросы API, используя собственный собственный сериализатор + другие функции.
ApiService
подпись конструктора:
constructor(metaManager: MetaManager, connector: ApiConnectorService, eventDispatcher: EventDispatcher);
-
MetaManager
- это инъекционная служба, которая обрабатывает метаданные api. -
ApiConnectorService
- это сервис, который обертываетHttp
, чтобы добавить наши пользовательские заголовки и систему подписи. -
EventDispatcher
- это в основном диспетчерская система Symfony, в typescript.
Проблема
Когда я тестирую ApiService
, я инициализирую в beforeEach
:
beforeEach(async(() => {
TestBed.configureTestingModule({
imports : [
HttpModule
],
providers: [
ApiConnectorService,
ApiService,
MetaManager,
EventDispatcher,
OFF_LOGGER_PROVIDERS
]
});
}));
и он отлично работает.
Затем я добавляю свой второй spec файл, который для ApiConnectorService
, с этим beforeEach
:
beforeEach(async(() => {
TestBed.configureTestingModule({
imports : [HttpModule],
providers: [
ApiConnectorService,
OFF_LOGGER_PROVIDERS,
AuthenticationManager,
EventDispatcher
]
});
}));
И все тесты терпят неудачу с этой ошибкой:
Ошибка: не удается разрешить все параметры для ApiService: (MetaManager,?, EventDispatcher).
- Если я удалю
api-connector-service.spec.ts
(ApiConnectorService
spec файл) из моих загруженных тестов, тестыApiService
будут успешными. - Если я удаляю
api-service.spec.ts
(ApiService
spec файл) из моих загруженных тестов, тестыApiConnectorService
будут успешными.
Почему у меня есть эта ошибка? Кажется, что контекст между моими двумя файлами конфликтует, и я не знаю, почему и как это исправить.