Да, есть способ (хотя я не думаю, что это нужно проверять).
Я не собираюсь писать весь тест для вас, но вот логика:
- Создайте родительский компонент (назовем его
MockComponent
) в вашем тесте с базовым условием ngIf
для отображения вашего MyComp
или нет - Смоделируйте наблюдаемое из вашего сервиса, используя другое наблюдаемое, котороеВы построили так:
.
const obsCleanUpFunction = jasmine.createSpy();
const obs$ = new Observable(observer => {
//following will be called when/if the observable if completed
return obsCleanUpFunction;
});
- Создайте компонент
MockComponent
с MyComp
в нем - Запустите обнаружение измененийпройти в
ngOnInit
и подписаться на него - На компоненте
MockComponent
установите условие для отображения MyComp
в значение false -> оно будет уничтожено ngIf
, оценивающим в значение false - Ожидайте жасминового шпиона
toHaveBeenCalled