【问题标题】:How to write a test case for password and Confirm password PasswordMatching validation Directive如何编写密码测试用例和确认密码密码匹配验证指令
【发布时间】:2019-05-27 18:53:21
【问题描述】:

我正在为密码不匹配验证器编写单元测试用例。如何为以下方法编写测试规范?

我尝试搜索互联网,但无法设置表单控件的值

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);
  }
}

【问题讨论】:

标签: angular user-interface jasmine karma-runner


【解决方案1】:

嗯,首先你应该用一些虚拟数据初始化一个新的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 像它应该的那样,当然也断言相反的情况

【讨论】:

    猜你喜欢
    • 2014-10-18
    • 2013-09-18
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    相关资源
    最近更新 更多