Модульный тест Угловая функция @Input не сработала - PullRequest
0 голосов
/ 14 сентября 2018

В моем компоненте

@Input('price')
set setPrice(price) {
    this.price = price;
    this.modifyTotalAmount();
}

test (component.spec.ts)

it('should call function ', () => {
    spyOn(fixture.componentInstance, 'modifyTotalAmount');
    fixture.componentInstance.price = 4500;
    fixture.detectChanges();
    const divActualPrice = fixture.debugElement.query(By.css('#actualPrice'));
    expect(divActualPrice.componentInstance.modifyTotalAmount).toHaveBeenCalled();
});

Обычно, когда значение родительского компонента изменяется, это setPrice (цена) хиты и modifyTotalAmount () вызванная функция.Но когда запускается модульное тестирование, modifyTotalAmount () не вызывается.этот контрольный пример провалился.Я думаю, что то, что я сделал в тестовом примере, может быть неправильным.Кто-нибудь может, пожалуйста, уточнить, что с этим не так.

1 Ответ

0 голосов
/ 14 сентября 2018

Как уже указывал Аникет Кадам, когда вы устанавливаете fixture.componentInstance.price = 4500, вы не используете установщик setPrice, который вам нужно будет вызвать, чтобы вызвать this.modifyTotalAmount()

Так что вместо этого сделайте fixture.componentInstance.setPrice = 4500.

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