【问题标题】:Unit Test of FormControl in Angular 9: TypeError: Cannot read property 'validate' of null (Validators.compose)Angular 9 中 FormControl 的单元测试:TypeError:无法读取 null 的属性“验证”(Validators.compose)
【发布时间】:2020-08-26 14:10:18
【问题描述】:

我总是得到错误 TypeError:无法读取 null 的属性“验证” 使用 Validators.compose 尝试测试以下代码时

this.form.controls.phoneNumber.setValidators([
Validators.compose([this.utilsService.conditionalRequired(isRequired)]), Validators.pattern(Regex[regexKey])
]);

知道如何模拟 (Validators.compose) 部分吗?

【问题讨论】:

    标签: angular unit-testing testing jasmine angular9


    【解决方案1】:

    这些未定义的“验证”(或在您的情况下为 null)很难找出原因,但通常要确保在使用之前定义所有内容。

    下面是您如何实例化您的 FormGroup,然后组件执行 .addControl 或 setValidators

    let formBuilder: FormBuilder = new FormBuilder();
    let mockFormGroup: FormGroup = formBuilder.group({phoneNumber:new FormControl(this.obj.id, Validators.required));});
    

    您还需要创建一个 MockUtilsService 并将其提供到规范中

    【讨论】:

      猜你喜欢
      • 2020-06-13
      • 1970-01-01
      • 2014-09-13
      • 2020-11-16
      • 2020-08-29
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 1970-01-01
      相关资源
      最近更新 更多