Аргумент типа «emit» не может быть назначен параметру типа «never» - PullRequest
0 голосов
/ 24 мая 2018

Мне нужно протестировать компонент в Angular, который имеет только один метод и определенные свойства @Input и @Output-

  updateColumns(eventValue: ManagedColumns) {
    this.applyColumnChanges.emit(eventValue);
  }

Есть еще один компонент, у которого есть метод, который должен вызывать вышеуказанный метод.Call, как в нем, испускает событие, которое будет потребляться другим, я полагаю, которое в свою очередь испускает другое событие, которое потребляется третьим в другом компоненте -

applyChanges() {
        this.apply.emit(<ManagedColumns>{
            selectedColumns: this.selectedItems.slice(),
            availableColumns: this.availableItems.slice()
        });
        this.closeDialog();
    }

Я пытаюсь проверитьupdateColumns но потеряли, как это сделать?Можно ли смоделировать applyChanges, который, в свою очередь, генерирует updateColumns, и мы можем проверить те же значения?

Если я попытался -

manageColumnsComponent = TestBed.createComponent(ManageColumnsComponent).componentInstance;
    spyOn(manageColumnsComponent.applyChanges, 'emit');

Ошибка получения -

[ts] Argument of type '"emit"' is not assignable to parameter of type 'never'.

1 Ответ

0 голосов
/ 20 августа 2018

Вам необходимо следить за фактической переменной eventEmitter, а не за функцией.

spyOn (manageColumnsComponent.apply, 'emit')

...