Wie verspotten Sie eine Komponente in Angular 2.0.0 Final Release? Ich habe ein Problem darin, eine Komponente zu verspotten, die eine Variable hat, die ich für Logik in einer anderen Komponente verwende. Insbesondere möchte ich eine PrimeNG Datatable Auswahl vortäuschen.Angular 2.0.0 - Mocking Components
Beispielcode unten.
table.component.html
<p-dataTable
#table
[value]="myDatasource"
[(selection)]="mySelections"
...
>
table.component.ts
@Component({
selector: 'my-table',
templateUrl: './table.component.html'
})
export class TableComponent{
@ViewChild('table') datatable;
my-component.component.html
<my-table #mytable></my-table>
my-component.component.ts
@Component({
selector: 'my-component',
templateUrl: './my-component.component.html'
})
export class MyComponent {
@ViewChild('#mytable') mytable;
myFunction() : void {
if(this.mytable.table.selection.length === 0){
console.log();
} else{
console.log();
}
}
Wie ich es verspotten, so dass ich Werte an die Auswahl in den table.component.ts im zu testen, setzen kann meine -component.component.ts?
Vielen Dank für Ihre Antwort. Allerdings verwende ich die Datentabelle von primeNG und die p-Datatable-Komponente liegt außerhalb meiner Kontrolle. Auf der anderen Seite, wie verspotte ich den Tisch? Benütze ich die overrideComponent in testBed? – xiotee
Ich habe es dir nur gezeigt. Erstellen Sie eine andere Komponente als Mock und fügen Sie sie den 'Deklarationen' hinzu, anstatt PrimeNgs –
zu verwenden. Ja, ich erinnerte mich, aber es war ein Dienst. Sollte ich jedoch die mocked-Tabelle in TestBed.configureTestingModule oder TestBed.overrideComponent konfigurieren? – xiotee