#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. Вы не можете так тестировать валидатор. Либо протестируйте, как вы бы тестировали обычную функцию, либо создайте директиву, как здесь , и протестируйте эту директиву.