web-dev-qa-db-ja.com

テストAngular 2コンストラクターパラメーターを持つコンポーネント

2つの入力パラメータを持つAngular 2コンポーネントがあるとします:

@Component{... (omitted for clarity)}
export class SomeComponent {

@Input() a: number
@Input() b: number

}

このコンポーネントをテストしたいとき、私は次のようなものを持っています:

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [
        SomeComponent,
      ],
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(SomeComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

createComponent呼び出しはパラメーターを受け取らないか、コンストラクターを呼び出すことができません。さまざまな数値のコンポーネントをインスタンス化/テストするにはどうすればよいですか?

8

JB Nizetが指摘しているように、コンポーネントに@inputパラメータがある場合は、beforeEach()でそれらを初期化する必要があります: `` `

beforeEach(() => {
    fixture = TestBed.createComponent(SomeComponent);
    component = fixture.componentInstance;
    component.a = 1;
    component.b = 2;
    fixture.detectChanges();
});

`` `

1
Deunz