返回
Angular自定义验证器ValidatorFn单元测试
2020-11-03 4096 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);
});大家根据自己实际情况操作吧。如有更好的方法,留言告诉我,谢谢了。
网友点评
提交
相关阅读
Angular UT报错Error: NG0100: ExpressionChangedAfterItHasBeenCheckedError
@testing-library/react单元测试getBy queryBy和findBy的区别
.NET C# 单元测试 mock File.Exists的返回值
Angular 17和Vue.js怎么选?
Angular单元测试函数根据不同的参数returnValue不同的值
强大的 .NET Mock 框架 单元测试模拟库Moq使用教程
Angular如何mock window对象
Angular echarts No provider for InjectionToken NGX_ECHARTS_CONFIG!错误