Angular响应式表单下拉选择框单元测试问题求助
解决Angular响应式表单下拉选择框单元测试无响应问题
你的测试代码核心问题是给下拉框触发了错误的事件类型:下拉选择框的值变更时,浏览器触发的是change事件而非input事件,这导致表单控件没有接收到值更新的通知。
修改后的测试代码如下:
it('should update the value of the contactSuffix field', () => { const contactSuffix = fixture.nativeElement.querySelector('#contactSuffix'); contactSuffix.value = 'mr'; contactSuffix.dispatchEvent(new Event('change')); // 替换为change事件 fixture.detectChanges(); // 若组件需要手动触发变更检测可添加 expect(component.stepForm.controls['contactSuffix'].value).toEqual('mr'); });
额外提示:如果表单初始化时未给contactSuffix控件设置初始值,可在测试用例开头提前设置初始值,避免初始空值的干扰,但核心修复点还是替换事件类型。
内容的提问来源于stack exchange,提问作者KathrynCrawford
相关产品推荐
相关产品推荐

