В моем угловом приложении я использую переменную modifiedPrice
для отображения обновленной суммы в html.
html
<div id="actualPrice">
<div> ACTUAL </div>
<div> {{ modifiedPrice }} </div>
</div>
component.ts
@Input('actualPrice')
set setActualPrice(actualPrice) {
this.actualPrice = actualPrice;
this.modifyActualAmount();
}
actualPrice: number;
modifiedPrice: number;
modifyActualAmount() {
this.modifiedPrice = 0;
if (this.actualPrice > 0 ) {
this.modifiedPrice = this.actualPrice;
}
}
component.spec.ts
it('should display Actual Price', async() => {
spyOn(fixture.componentInstance, 'modifyActualAmount');
fixture.componentInstance.setActualPrice = 4500;
fixture.detectChanges();
const divActualPrice = fixture.debugElement.query(By.css('#actualPrice'));
expect(fixture.componentInstance.modifyActualAmount).toHaveBeenCalled(); // <---- (1)
fixture.whenStable()
.then( () => {
expect(divActualPrice.nativeElement.textContent).toContain('4500'); // <----(2)
}
);
});
при запуске теста (1)
пройдено, так что вызывается функция сцен modifyActualAmount()
.Но, похоже, это не выполняется.если эта функция вызвана, то модифицированную цену нужно обновить.Как я могу исправить эту проблему.