代码之家  ›  专栏  ›  技术社区  ›  Tester

角度形式验证如何输出错误消息

  •  0
  • Tester  · 技术社区  · 6 年前

    我正在测试这个模板驱动的角度表单。

    <form  name="editForm" role="form" novalidate (ngSubmit)="save()" #editForm="ngForm">
      <input #cardInput type="text" class="form-control" name="name" id="id_name"
             [(ngModel)]="pacient.name" maxlength="20" />
      <small class="form-text text-danger" id ="ref"[hidden]="!editForm.controls.name?.errors?.maxlength"
             jhiTranslate="entity.validation.maxlength" translateValues="{ max: 20 }">
        This field cannot be longer than 20 characters.
      </small>
    </form>
    

    我正在测试它是否在无效时输出错误消息,如下所示:

     fit ('Blank input is not valid', async(() => {
                   
                    comp.paciente.tarjetaSanitaria = 'ddddddddddddddddddddddddddddddddd' ;      
                
    
                    }));    

    当输入无效时,如何使其输出错误消息?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Fateh Mohamed    6 年前

    通过检查隐藏属性来尝试此操作

    errorMessage = fixture.debugElement.query(By.css('.text-danger'));
    errorMessageElement = errorMessage.nativeElement;
    expect(errorMessageElement.hasAttribute('hidden')).toEqual(false);
    

    要测试所有错误消息,可以使用query all而不是query,queryall返回一个debuglements数组,它可以是这样的

    errorMessages = fixture.debugElement.queryAll (By.css('.text-danger'));
    errorMessages.foreach(element => {
    errorMessageElement = element.nativeElement;
     expect(errorMessageElement.hasAttribute('hidden')).toEqual(false);
    })