Angular 8 - Как издеваться над субъектом, возвращающимся из службы - PullRequest
0 голосов
/ 13 марта 2020

Это служебная часть:

@Injectable()
export class PinnedTileStateService {
    private pinnedTileStateSubject: Subject<number> = new Subject();

    public getPinnedTileState(): Subject<number> {
        if (this.pinnedTileStateSubject) {
            return this.pinnedTileStateSubject;
        }
    }
}

Это составная часть:

 ngOnInit(): void {
        this.pinnedTileStateService.getPinnedTileState().subscribe((pinnedTileId) => {          
               //anything          
        });
    }

Я хочу проверить метод ngOnInit () в .spe c .ts файл. Я пробовал несколько способов, таких как насмешка над объектом, но не удалось.

Могу ли я получить помощь, как я могу проверить метод getPinnedTileState ngOnInit, который возвращает тему?

Большое спасибо / S

1 Ответ

1 голос
/ 13 марта 2020

Попробуйте выполнить следующее:

spyOn(pinnedTileStateService,'getPinnedTileState').and.returnValue(Observable.of(// whatever shall be emited));

Если вы хотите проверить поведение onInit, вы должны установить шпиона в блоке beforeEach, так как вы хотите установить его во время инициализации вашего компонента.

...