enhetstestning - Testa Angular 2-komponent med konstruktörsparameter
Säg att jag har en Angular 2-komponent med två inmatningsparametrar:
@Component{... (omitted for clarity)}
export class SomeComponent {
@Input() a: number
@Input() b: number
}
När jag vill testa den här komponenten har jag något som:
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
SomeComponent,
],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SomeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
Anropet createComponent tar inga parametrar eller tillåter mig att anropa konstruktorn. Hur kan jag instansera/testa komponenten för olika nummervärden?
Svar #1
Som påpekats av JB Nizet, när en komponent har @input-parametrar, behöver du initiera dem i beforeEach() : ```
beforeEach(() => {
fixture = TestBed.createComponent(SomeComponent);
component = fixture.componentInstance;
component.a = 1;
component.b = 2;
fixture.detectChanges();
});
```
