gpt4 book ai didi

Angular 2 单元测试在嵌套 ngModel 元素时必须多次调用 whenStable

转载 作者:太空狗 更新时间:2023-10-29 17:54:50 25 4
gpt4 key购买 nike

我很清楚这里的这个错误:

https://github.com/angular/angular/issues/10148

其中提到需要调用 fixture.detectChanges(); 然后调用 fixture.whenStable()

但是,当我开始嵌套每个使用 ngModel 值访问器提供程序的元素时,我必须在循环中调用这两个方法。

有没有其他方法可以做到这一点?它似乎效率不高,我经常需要编辑此功能。我可以使用递归方法来简化它以防止重复,但这不是问题所在。

export function bugWhenStable(fixture: ComponentFixture<any>): Promise<any> {
let def = new Promise(resolver => {
fixture.detectChanges();
fixture.whenStable().then(() => {
fixture.detectChanges();
fixture.whenStable().then(() => {
fixture.detectChanges();
fixture.whenStable().then(() => {
resolver();
});
});
});
});

return def;
}

我的组件做这样的事情:

<wm-comp1 [(ngModel)]="value"></wm-comp1>

我在 Comp1 中有哪些

<wm-comp2 [(ngModel)]="value"></wm-comp2>

等等

最佳答案

为什么不使用async/await

it('should do whatever', async(async() => {
fixture.detectChanges();
await fixture.whenStable();
}));

关于Angular 2 单元测试在嵌套 ngModel 元素时必须多次调用 whenStable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41274000/

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