Ich habe auf der angular2-Website nachgesehen, sowie viele SO-Posts überprüft und konnte kein Beispiel finden, das nach Anwendungsfall veranschaulicht.Wie man ein @Input() Objekt in angular2 vortäuscht?
Ich möchte Daten von einem Objekt vortäuschen, das ein @Input() -Tag hat. Meine Komponente sieht wie folgt aus
...
export class DriftInfoDisplayComponent implements OnInit {
showThisDriftInfo:boolean;
headerText:string;
informationText:string;
linkText:string;
@Input() inputInfo:DriftInfo;
constructor(){}
ngOnInit() {
this.headerText = this.inputInfo.headerText;
this.informationText = this.inputInfo.informationText;
this.linkText = this.inputInfo.linkText;
this.showThisDriftInfo = this.inputInfo.visible;
}
toggleDriftInfo(){
this.showThisDriftInfo = ! this.showThisDriftInfo;
}
}
Meine Einheit Testdatei für diese Komponente wie folgt
describe('DriftInfoComponent',() => {
let component: DriftInfoDisplayComponent;
let fixture: ComponentFixture<DriftInfoDisplayComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ DriftInfoDisplayComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(DriftInfoDisplayComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create',() => {
const fixture = TestBed.createComponent(DriftInfoDisplayComponent);
const drift = fixture.debugElement.componentInstance;
expect(drift).toBeTruthy();
});
});
sieht Ich möchte einen Test schreiben, die die inputInfo spottet: DriftInfo und ihre Aufgabe in DriftInfoDisplayComponent und seine Eigenschaften damit ich testen kann, ob diese Daten in der HTML-Vorlage korrekt angezeigt werden. Wie kann ich das machen?
Danke für jede Hilfe, die zur Verfügung gestellt werden kann!
Vielen Dank! Nur eine Frage. Ich habe By.css verwendet, um zu versuchen, ein HTML-Element aus der Vorlage auszuwählen, um zu überprüfen, dass die Daten dieses Objekts an der richtigen Stelle an die HTML-Vorlage gebunden werden. Meine Frage ist ... Ist das eine Verschwendung von Zeit, die HTML-Vorlage so zu überprüfen? Oder ist das besser für Integrationstests geeignet, und der Punkt von Karma/Jasmin besteht darin, die tatsächliche Logik in der Komponentendatei zu testen? – Dan
Ich würde sagen, dass die Überprüfung der Daten im HTML-Objekt in den Bereich der Komponententests fallen könnte und für Karma/Jasmin geeignet wäre, aber ich stimme auch zu, dass es eine Art von Schmerz ist. In meinem Geschäft lassen wir alle Tests, die die Ansicht betreffen, bis zu End-to-End-Tests (unter Verwendung des Winkelmessers, der auch bei Angular CLI-generierten Projekten standardmäßig installiert wird). – joh04667