Как написать контрольный пример для пароля и Подтвердить пароль Директива проверки паролей - PullRequest
0 голосов
/ 27 мая 2019

Я работаю над написанием юнит-тестов для валидатора несоответствия паролей.Как я могу написать тестовую спецификацию для метода ниже?

Я попытался выполнить поиск в Интернете, но не смог установить значение для элемента управления формы

export class PasswordMatchingValidation {

  constructor() {}

  static MatchPassword(AC: FormControl) {

    const password = AC.get('password').value; // to get value in input tag
    const confirmPassword = AC.get('confirmPassword').value; // to get value in 

    if (password !== confirmPassword) {

      AC.get('confirmPassword').setErrors({
        MatchPassword: true
      });

    } else {
      return null;
    }
  }

  /**
   * validate if the passwords are matching
   * @param ctrl Takes Form Control
   */
  validate(ctrl: FormControl) {
    return PasswordMatchingValidation.MatchPassword(ctrl);
  }
}

1 Ответ

0 голосов
/ 27 мая 2019

Ну, во-первых, вы должны инициализировать новый FormControl с некоторыми фиктивными данными и вызвать PasswordMatchingValidation.MatchPassword с элементом управления, который вы ранее сделали в качестве аргумента, и подтвердить результат.

const control = new FormControl({password: 'whatever'});
describe('PasswordMatchingValidation', () => {
  it('should validate two identical passwords', () => {
    const validation = PasswordMatchingValidation.MatchPassword(control);
    expect(validation).toEqual({ MatchPassword: true });
  });
});

Сделайте вашFormControl как и должно быть, и, конечно, также утверждать обратный случай

...