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();
});

```

Relaterade artiklar