testing - foreign - data binding angular 2
prueba angular2: no se puede enlazar a ''ngModel'' ya que no es una propiedad conocida de ''input'' (1)
Estoy intentando probar el enlace bidireccional angular2 para la
input
control.
Aquí está el error:
Can''t bind to ''ngModel'' since it isn''t a known property of ''input''.
El app.component.html
<input id="name" type="text" [(ngModel)]="name" />
<div id="divName">{{name}}</div>
El app.component.ts
@Component({
selector: ''app-root'',
templateUrl: ''./app.component.html''
})
export class AppComponent implements OnInit {
name: string;
}
app.component.spec.ts
import { TestBed, async } from ''@angular/core/testing'';
import { AppComponent } from ''./app.component'';
import { AppService } from ''./app.service'';
describe(''App: Cli'', () => {
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
AppComponent
],
providers:[AppService]
});
});
it(''divName'', async(() => {
let fixture = TestBed.createComponent(AppComponent);
let comp = fixture.componentInstance;
comp.name = ''test'';
fixture.detectChanges();
let compiled = fixture.debugElement.nativeElement;
expect(compiled.querySelector(''divName'').textContent).toContain(''test'');
}));
});
FormsModule
importar
FormsModule
a la
TestBed
TestBed.
import { FormsModule } from ''@angular/forms'';
TestBed.configureTestingModule({
imports: [ FormsModule ],
declarations: [
AppComponent
],
providers:[AppService]
});
Lo que está haciendo con
TestBed
es configurar un NgModule desde cero para el entorno de prueba.
Esto le permite agregar solo lo que se necesita para la prueba sin tener variables externas innecesarias que puedan afectar la prueba.