在 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,表示验证通过。
这只是一个简单的示例,你可以根据你的具体需求修改和扩展测试用例。