Модульный тест Angular 2+ - fixture.detectChanges () удаляет свойства компонента - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть этот тест.Там я установил некоторые значения моего компонента.Эти значения определяют статус кнопки.Прямо перед fixture.detectChanges () эти значения все еще установлены.Но после (прямо в const createButton ....) эти значения исчезают и снова устанавливаются в ноль.Вопрос в том, почему и как я могу установить эти значения, чтобы я мог обнаруживать изменения в состоянии кнопки.

it('should activate the create button with a customer and service set', () => {
    fixture = TestBed.createComponent(MyComponent);

    fixture.componentInstance.entry.service = new Service('1', 'Name', null);
    fixture.componentInstance.entry.customer = customerMock;

    fixture.detectChanges();

    const createButton = fixture.debugElement.query(By.css('p-button[name="createButton"]'));
    const actual = createButton.attributes['ng-reflect-disabled']; // TODO try find better way
    expect(actual).toBe('false');

  });

РЕДАКТИРОВАТЬ: как запрос.Я не могу опубликовать весь компонент, но я думаю, что соответствующая часть компонента onInit.

ngOnInit() {
    this.servicePoolSubscription = this.stateService.getServiceSubject()
        .subscribe(serviceList => this.services = serviceList);
      this.Entry = EntryService.prepare();
  }

  ngOnDestroy(): void {
    if (this.serviceSubscription) {
      this.serviceSubscription.unsubscribe();
    }
  }

Как я думаю об этом.EntryService.prepare () подготавливает новый объект.Fixture.detectChanges снова вызывает onInit?

1 Ответ

0 голосов
/ 20 февраля 2019

первые fixture.detectChanges() триггеры ngOnInit().Вызывайте его первый раз, прежде чем изменять свойства компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...