2020-11-03
225 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); });
大家根据自己实际情况操作吧。如有更好的方法,留言告诉我,谢谢了。