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