Угловое тестирование не работает для пользовательских валидаторов

#angular #typescript #unit-testing #karma-jasmine #customvalidator

Вопрос:

Я пытался создать .Файл спецификации для моего файла валидатора, но при тестировании файла валидаторов я получаю ошибку ниже.

Ошибка

 Error: Can't Resolve all parameters for function (testFormGroup) {:(?)
 

Пожалуйста, ознакомьтесь с приведенным ниже моим кодом и есть ли какие-либо возможности для этого запуска.

HTML

 <div [formGroup] = "testFromGroup">
   <input type="text" class="form-control" formControlName = "name">
</div>
 

файл .ts

 this.testFormGroup = this.formBuilder.group({
   name: new FormControl();
});

this.testFormGroup.setValidators(FromValidtaor());
 

валидаторы.ts

 import {ValidatorFn, FormGroup} from '@angular/forms';
export function FromValidtaor(): ValidatorFn {
return (testFormGroup: FormGroup): {[key: string]: boolean} | null => {
    if(testFormGroup) {
        const value = testFormGroup.get('name').value;
        if(!value) {
            return { required: true}
        }
    }
    return null;
}}
 

.файл спецификаций

 import {TestBed} from '@angular/core/testing';
import {ValidatorFn} from '@angular/forms';
import {FromValidtaor} from 'validators/test-validators';

describe('Test Form Validators', () => {
let validator;

beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [],
      providers: [FromValidtaor()]
    });
    validator = TestBed.inject(FromValidtaor());
});

describe('Form Validators', () => {
    let formValidator: validatorFn;

    beforeEach(() => {
        formValidator = validator;
    });

    it('Should be Truthy', () => {
        expect(formValidator).toBeTruthy()
    });
});
});
 

Комментарии:

1. Вы не можете так тестировать валидатор. Либо протестируйте, как вы бы тестировали обычную функцию, либо создайте директиву, как здесь , и протестируйте эту директиву.