Предполагая, что у вас есть рабочая тестовая установка и создан рабочий шпион для вашей activeArticleService
Существует два подхода в зависимости от того, используете ли вы неглубокий тест или фактически настроили тест, в котором объявлены все компоненты,(Я бы предложил использовать метод поверхностного тестирования, так как это всего лишь модульный тест)
Используя поверхностное тестирование (настройка NO_ERRORS_SCHEMA
), вы можете запустить пользовательский EventHandler, открыв нужный элемент с помощью:
const debugElem = fixture.debugElement.query(By.css('prism-article-carousel'));
debugElem.triggerEventHandler('clickOnTitle', YOUR_EXPECTED_EVENT_OBJECT)
tick();
Чтобы это работало, ваши тесты должны использовать fakeAsync
.
Если вы не используете эту схему, вы получите экземпляр компонента с
fixture.debugElement.query(By.css('prism-article-carousel'))
, и вам понадобится что-то подобное (будьте осторожны, это только псевдокод)
childComponent = fixture.debugElement.query(By.css('prism-article-carousel')).componentInstance;
childComponent.emit(YOUR_VALUE_HERE);
tick();
Пожалуйста, посмотрите здесь в официальной документации для получения дополнительной информации об этих различных подходах к тестированию вложенного компонента.