.NET绿叶社区!
返回

Angular自定义验证器ValidatorFn单元测试

2020-11-03 Angular 单元测试 ValidatorFn 自定义验证器 51 0

在项目中定义了自定义的验证器,代码如下:

export function myValidator(minNum): ValidatorFn {
  return (control: AbstractControl) => {
    let flag = true;
    if (control.value < minNum && control.value > 0) {
      flag = false;
    }
    return !flag ? { 'myValidator': { value: control.value } } : null;
  };
}

表单formgroup使用了Mock,所以自定义验证器代码没有被覆盖。如何为自定义验证器ValidatorFn写单元测试呢?如何Mock自定义验证器ValidatorFn呢?我是这么做的。

首先import自定义验证器:

import { TestComponent, myValidator } from './test.component';

单元测试代码如下:

it('myValidator not return null', () => {
    expect(myValidator(50)(<AbstractControl>{
        value: 20
    })).toEqual({ 'myValidator': { value: 20 } });
});
it('myValidator return null', () => {
    expect(myValidator(50)(<AbstractControl>{
        value: 0
    })).toEqual(null);
});

大家根据自己实际情况操作吧。如有更好的方法,留言告诉我,谢谢了。

点赞 收藏

顶部