在 Angular 单元测试中,可以使用 FormControl
对象的 errors
属性来验证是否具有验证器。以下是一个示例的解决方法:
import { FormControl, Validators } from '@angular/forms';
describe('MyComponent', () => {
let control: FormControl;
beforeEach(() => {
control = new FormControl('', Validators.required);
});
it('should have required validator', () => {
control.setValue('test');
expect(control.errors).toBeNull();
control.setValue('');
expect(control.errors).toEqual({ required: true });
});
});
在这个示例中,我们创建了一个 FormControl
对象,并给它添加了一个 Validators.required
验证器。然后我们使用 setValue
方法来设置控件的值,并通过断言来验证 errors
属性是否正确反映了验证器的结果。
注意,在测试之前,我们需要先导入 FormControl
和 Validators
类。同时,我们还需要在 beforeEach
块中创建 FormControl
对象,并初始化它的值和验证器。
这个示例中的测试用例验证了当控件的值为空时,是否正确触发了 required
验证器,并将 errors
属性设置为 { required: true }
。当控件的值非空时,errors
属性应该为 null
,表示验证通过。
这只是一个简单的示例,你可以根据你的具体需求修改和扩展测试用例。