Angular2测试模板驱动表单禁用属性

spe*_*bob 5 karma-jasmine angular

我有一个模板驱动的表单,其中包含许多类似以下内容的输入

<input type="text" name="data" [(ngModel)]="data" [disabled]="disabled" />
Run Code Online (Sandbox Code Playgroud)

我想编写一个测试,以确保在将disabled变量设置为true 时,禁用所有输入。到目前为止,这是我的测试。它可以工作,但是上面有几个“禁用”属性,element并且element.nativeElement这些属性仍然为false。另外,在调试器中停止时,Chrome中的渲染视图看上去不会被禁用。实际上,只有“ ng-reflect-is-disabled”属性为真。

it("should disable all inputs when disabled is true", () => {
    component.disabled = true;
    fixture.detectChanges();

    inputs = fixture.debugElement.queryAll(By.css('input'));
    inputs.forEach(element => {
        expect(element.attributes["ng-reflect-is-disabled"]).toBe('true');
    });

  });
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法可以实际检查输入的禁用状态?