title: ng-reflect vs. 'real' attribute value on nativeElement during testing
body: <p>I try to test a custom input element in angular4/5 with karma/jasmine nut I can't figure out if I miss a thing.</p>
  
  <p>Can anybody please point me in the right direction?</p>
  
  <p>So I have a custom input component like:</p>
  
  <pre><code>&lt;div&gt;
    &lt;input class="input-class" [type]="inputType" [required]="required" [disabled]="disabled"          [(ngModel)]="value" (input)="handleChange()" /&gt;
    &lt;label&gt;...&lt;/label&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p>Now I like to test the disabled attribute on the nativeElement for example:</p>
  
  <pre><code>it('can be disabled', () =&gt; {
  formControl.disable();
      let inputElement = fixture.debugElement.query(By.css('input-element'))
      fixture.detectChanges();
      // works:
      expect(inputElement.attributes.getNamedItem('ng-reflect-is-disabled')).toBeTruthy();
      // works not:
      expect(inputElement.disabled).toBeTruthy();   
      // also doesn't work:
      expect(inputElement.attributes.getNamedItem('disabled')).toBeTruthy();
    });
  </code></pre>
  
  <p>Why can I see the change on the ng-reflect attribute but not on the original? Do I miss a call to trigger a lifecyle event? O have I to use protractor test?</p>