Angular 2 — тестовый компонент с зависимостью ChangeDetectorRef

я пытаюсь протестировать компонент с помощью ChangeDetectorRef

constructor(private cdRef: ChangeDetectorRef) {}

А это файл спецификации

import {RTLateralMenuComponent} from "./RTLateralMenu.component";

describe('RTLateralMenuComponent', () => {
  let app: RTLateralMenuComponent;

  beforeEach(()=>{
    app = new RTLateralMenuComponent();
  });
});

новый RTLateralMenuComponent, очевидно, ожидает аргумент, но я не знаю, как это работает.


person Community    schedule 02.08.2018    source источник
comment
Пожалуйста, прочитайте руководство по тестированию угловых модулей. Вы узнаете лучшие способы сделать это angular.io/guide/testing#component- основы тестирования   -  person Amit Chigadani    schedule 02.08.2018
comment
Начал читать гайд, но сразу появляется эта ошибка   -  person    schedule 02.08.2018
comment
Отвечает ли это на ваш вопрос? Angular 2: как имитировать ChangeDetectorRef во время модульного тестирования   -  person Alex Parloti    schedule 08.06.2020


Ответы (1)


Вы можете издеваться над этим

const cdRefMock = {
  detectChanges: () => null
};

app = new RTLateralMenuComponent(cdRefMock);

Вам нужно будет реализовать каждый метод, используемый в вашем компоненте: detectChanges является наиболее распространенным, я подумал, что дам его сразу.

(PS: я предположил, что вы не используете испытательный стенд, так как создаете экземпляр своего компонента)

person Community    schedule 02.08.2018
comment
Появляется следующая ошибка: ''Отсутствует свойство markforcheck в типе {detectChanges: () =› null }. - person ; 02.08.2018
comment
Затем добавьте markforcheck в свой макет. Я сказал вам поместить каждый метод, который вы используете, в макет. - person ; 02.08.2018
comment
Нет проблем, я здесь для этого! - person ; 02.08.2018