gpt4 book ai didi

javascript - 未触发单元测试 Angular @Input 设置函数

转载 作者:行者123 更新时间:2023-11-30 20:11:44 25 4
gpt4 key购买 nike

在我的组件中

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

测试(组件.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(price) 命中并调用modifyTotalAmount() 函数.但是当单元测试运行时,modifyTotalAmount() 不会被调用。这个测试用例失败了。我认为我在测试用例中所做的可能是错误的。谁能澄清一下这有什么问题。

最佳答案

正如 Aniket Kadam 已经指出的那样,当你设置fixture.componentInstance.price = 4500 你没有使用 setter setPrice您需要调用它才能触发 this.modifyTotalAmount()

fixture.componentInstance.setPrice = 4500 也是如此。

关于javascript - 未触发单元测试 Angular @Input 设置函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52332314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com