【问题标题】:Expected true to equal false预期 true 等于 false
【发布时间】:2018-05-28 08:01:09
【问题描述】:

我想测试一些在 Angular 中真正不在 Anguar 教程中的东西。

我正在尝试测试当此输入的值无效时输出错误消息,因此在放置超过 20 个字符的 wor 的情况下隐藏属性为 false。

  <input #cardInput type="text" class="form-control" name="tarjetaSanitaria" id="field_tarjetaSanitaria"
	                [(ngModel)]="paciente.tarjetaSanitaria" maxlength="20"/>
	            <div [hidden]="!(editForm.controls.tarjetaSanitaria?.dirty && editForm.controls.tarjetaSanitaria?.invalid)">
	                <small class="form-text text-danger"  id="ref"
	                   [hidden]="!editForm.controls.tarjetaSanitaria?.errors?.maxlength"  translateValues="{ max: 20 }">
	                   This field cannot be longer than 20 characters.
	                </small>

我的组件有这个:

 paciente: Paciente = {tarjetaSanitaria: 'ddd'} as Paciente;

我的测试:

       fit ('Blank input is not valid', async(() => {
               
                comp.paciente.tarjetaSanitaria = 'ddddddddddddddddddddddddddddddddddddddddddd' ;
                spyOn(comp, 'save');
              var1 = comp.submitButton.nativeElement;
              var1.click();
              fixture.detectChanges();
              expect(comp.save).toHaveBeenCalledTimes(1);
expect(fixture.debugElement.query(By.css('#ref')).nativeElement.hasAttribute('hidden')).toEqual(false);

                })); 

它总是失败说 Expected true to qual false.IF 我删除了 fixture.detectChanges 它离开了过去。我是不是做错了什么?

【问题讨论】:

  • 什么意思?如果我这样做 console.log(fixture.debugElement.query(By.css('#ref')).nativeElement.innerHTML);它打印错误消息:字段....
  • 也许您需要检查“隐藏”属性的值,而不是检查该属性是否存在?
  • 检查你的意思是打印它的值?正如我上面评论的那样,它会打印错误消息

标签: javascript html angular testing


【解决方案1】:

表达式

 fixture.debugElement.query(By.css('#ref')).nativeElement.hasAttribute('hidden')

读起来好像它正在测试#ref 元素是否具有名为hidden 的属性。如果是这样,结果不太可能取决于属性的值。

如果nativeElement 属性是 DOM 中始终具有“隐藏”属性的 HTMLElement,您应该能够使用

fixture.debugElement.query(By.css('#ref')).nativeElement.getAttribute('hidden')

但是我无法方便地验证属性的数据类型。如果它是一个字符串,您应该期望它的值是字符串“false”。如果它是一个布尔值,你可能需要期望它的值是布尔值false

如果您不知道“隐藏”属性的数据类型,或者属性中如何存储真假,请添加一些调试代码以确定数据类型,然后再继续。祝你好运!

【讨论】:

  • 看,我打印了我的 ref 的 getAttribute hidden,所以你写一个 dit 的那一行给出了 null
猜你喜欢
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 2023-04-01
  • 1970-01-01
  • 2014-07-04
  • 1970-01-01
  • 2021-10-08
相关资源
最近更新 更多