У меня есть служба, которая возвращает значения, предоставляемые селекторами ngrx, и компонент, который определяет эту службу, вводит ее и устанавливает свойства на основе значений, возвращаемых службой.
Я пишу модульные тесты для компонента, используя макет службы, и мне нужно, чтобы макет службы возвращал разные значения для каждого модульного теста. Для этого я определил фиктивный класс обслуживания, чтобы он возвращал объекты вместо наблюдаемых. Тесты выполняются, но TS выдает ошибку, говоря, что интерфейс фиктивной службы не соответствует интерфейсу реальной службы, поскольку реальная служба возвращает наблюдаемые.
Stackblitz работает, и тесты выполняются правильно, но, как вы можете видеть, TS выдает ошибку TS2339: Свойство 'next' не существует для типа 'Observable'
Я обнаружил, что могу добавить // @ ts-ignore над каждым вызовом .next (), чтобы компилятор TypeScript игнорировал ошибку, но это не кажется лучшим решением.
Может быть, есть лучший способ вообще издеваться над сервисом, чтобы он по-прежнему возвращал наблюдаемые, но я мог возвращать другое значение для каждого модульного теста?