Reputation: 3188
Say I have an Angular 2 Component with two input parameters:
@Component{... (omitted for clarity)}
export class SomeComponent {
@Input() a: number
@Input() b: number
}
When I want to test this component I have something like:
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
SomeComponent,
],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SomeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
The createComponent
call does not take any parameters or allow me to call the constructor. How can I instantiate/test the component for various number values?
Upvotes: 11
Views: 17246
Reputation: 1941
As pointed ou by JB Nizet, when a component has @input parameters, you need to init them in the beforeEach() : ```
beforeEach(() => {
fixture = TestBed.createComponent(SomeComponent);
component = fixture.componentInstance;
component.a = 1;
component.b = 2;
fixture.detectChanges();
});
```
Upvotes: 4